当我去某一条数据时,怎么知道我取的是哪列(列如,我在ListView里随便点一条,把对应的行,列的值取出来)
不是ListView1.SelectedItem[0].SubItem[X];这样的

解决方案 »

  1.   

    根据以下条件遍例,好象只能知道选种了那一行
    listView1.SelectedItems.Count
    listView1.SelectedItems[i]
      

  2.   

    问题是我鼠标在ListView中随便点时,不知道是点哪列
      

  3.   

    取出鼠标坐标位置,然后根据你对listview各列宽度的设置,就可以知道当前鼠标处于哪一列范围内,然后据此来取此列的SubItem
      

  4.   

    ListView.Items[i].SubItems[x].ToString().Trim();

      

  5.   

    private int GetCellPosSize(ref Point local, ref Size size)
    {
    int Row = 0;
    int Col = 0;
    Rectangle R = listView1.SelectedItems[0].Bounds; int W1 = listView1.Columns[0].Width;
    int W2 = listView1.Columns[1].Width;
    int W3 = listView1.Columns[2].Width;
    int W4 = listView1.Columns[3].Width; Point pt =Cursor.Position;
    pt = listView1.PointToClient(pt); if(pt.X<W1)
    {
    Col=1;
    local.X=0;
    }
    else if(pt.X<(W1+W2))
    {
    Col=2;
    local.X=W1;
    }
    else if(pt.X<(W1+W2+W3))
    {
    Col=3;
    local.X=W1+W2;
    size.Width = W3;
    }
    else
    {
    Col =4;
    local.X=W1+W2+W3;
    size.Width = W4;
    } if(pt.Y<(R.Height*(listView1.Items.Count+1)))
    {
    Row = (int)(Math.Floor((double)pt.Y / R.Height));
    local.Y = Row*R.Height+1;
    } if(Row ==0 || Col == 0)
    return 0;
    else
    {
    size.Height = R.Height;
    return Col;
    } }