foreach(ColumnHeader ch in listView1.Columns)
{
ch.Text  //字段的显示文本
}

解决方案 »

  1.   

    foreach(ListViewItem.ListViewSubItem lvs in listView1.Items[0].SubItems)
    {
    lvs.Text  //每一行每个字段所显示的文本
    }
      

  2.   

    比如
            列1            列2             列3
    第一行   1             11              111
    第二行   2             22              222
    第一行   3             33              333
    第二行   4             44              444我要的功能就是点第一行的时候。(类似与DATAGRID风格)
    取得第一行的列值  分别 取出来   列1, 2, 3 列的值可是现在 取的时候点第一次好用,(在selectedindexChanged时间里写string a = this.lsvRecord.SelectedItems[0].Text;)取出来了。点第二次就不好用了。而且只能取第一列的值,可能是估计是微软的BUG吧。
    我从新定义了个事件,名字叫aa然后在aa里写 if(this.lsvRecord.SelectedItems.Count == 0)
    return;

    string a = this.lsvRecord.SelectedItems[1].Text;
    this.textBox1.Text =a;。
    这时候可以取出来lsvRecord.SelectedItems[0],第一列的值,而取lsvRecord.SelectedItems[1]或lsvRecord.SelectedItems[2]的时候就取不出来了,抱错。请问怎么取选中行所有列的值。(1行就可以。不要循环所有行)
    我的代码如下。初始化的时候
    //添加ListView的列
    lsvRecord.Columns.Add("发信人", -2, HorizontalAlignment.Left);
    lsvRecord.Columns.Add("日期                   ", -2, HorizontalAlignment.Left);
    lsvRecord.Columns.Add("时间                   ", -2, HorizontalAlignment.Left);
    lsvRecord.Columns.Add("内容", -2, HorizontalAlignment.Center);
    for(int i = 0;i<40;i++)
    {

    int itemNumber = this.lsvRecord.Items.Count;
    string[] subItem = {i.ToString(),i.ToString(),i.ToString(),i.ToString()};
    lsvRecord.Items.Insert(i,new ListViewItem(subItem));
    }
    真正取字段的时候。
    点击一行触发下面实件(只能选中行取第1列字段,)
    private void aa(object sender, System.EventArgs e)
    {
    if(this.lsvRecord.SelectedItems.Count == 0)
    return;

    string a = this.lsvRecord.SelectedItems[0].Text;
                           //string a = this.lsvRecord.SelectedItems[1].Text;//异常!!!!
            
    this.textBox1.Text =a;
    }
    请高手指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      

  3.   

    if(listView1.SelectedItems.Count>0)
    {
    foreach(ListViewItem.ListViewSubItem lvs in listView1.SelectedItems[0].SubItems)
    {
    textBox1.Text+=lvs.Text;
    }
    }这样写,取得被选定行第一行的所有字段的文本。
      

  4.   

    谢谢,我想问一下如果我想取得单一列的文本应该怎么写?不是一行所有列,而是一行的一列。请指教。谢谢。对了,你MSN是多少???我是[email protected]
      

  5.   

    listView1.Items[0].SubItems[i].Text   //i即第几列,从0开始计数