关于如何打印ListView的解决方法

ListView无外乎也是一个二维形式的,下面提供一个把ListView转换为二维数组。

ListView转换为二维数组

/// <summary>
/// 将ListView的数据导出到二维数组。
/// </summary>
/// <param name="listView">二维数据视图</param>
/// <param name="includeColumnText">是否要把列标题文本也导到数组中。</param>
/// <remarks>
///  <作者>长江支流</作者>
///  <日期>2005-08-21</日期>
///  <修改></修改>
/// </remarks>
/// <returns>二维数组。</returns>
public string[,] ToStringArray(ListView listView,bool includeColumnText)
{
 ListView lvw = listView;
 int rowsCount = lvw.Items.Count;
 int colsCount = lvw.Columns.Count;

 //包括列标题
 if (includeColumnText)
 {
  rowsCount++;
 }

 string[,] arrReturn = null;
 
 arrReturn = new string[rowsCount,colsCount];

 int i = 0;

 if (includeColumnText)
 {
  //写标题
  for(i = 0 ; i < colsCount; i++)
  {
   arrReturn[0,i] = lvw.Columns[i].Text;
  }

  i = 1;
 }

 //写数据行Items
 int rowIndex = 0;
 for(; i < rowsCount; i++,rowIndex++)
 {
  for (int j = 0; j < colsCount; j++)
  {
   arrReturn[i,j] = lvw.Items[rowIndex].SubItems[j].Text;
  }
 }

 return arrReturn;
}

打印ListView:

private void btnPrintEasy_Click(object sender, System.EventArgs e)
{
 MisGoldPrinter webmis = new MisGoldPrinter();   //打印组件
 webmis.Title = "MIS金质打印通/nWWW.WebMIS.COM.CN";  //网格标题   
 webmis.DataSource = ToStringArray(listView,true);    //任意二维的数据通通打印   
 webmis.Preview();      //打印预览
}

VB.Net:
Private Sub btnPrintEasy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrintEasy.Click
        Dim webmis As MisGoldPrinter      '打印组件
        webmis = New MisGoldPrinter
        webmis.Title = "MIS金质打印通"+vbCrLf+"WWW.WebMIS.COM.CN"  '网格标题
        webmis.DataSource = ToStringArray(listView,true)   '任意二维的数据通通打印   
        webmis.Preview()                             '打印预览
End Sub

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值