我在.net3.5的环境下想实现这样的功能,在listview的一行上点击右键,弹出菜单,就和VSS一样。现在我对listview的右键事件编码之后,发现在listview的空白处响应的。该如何实现类似VSS的功能呢,就是菜单是针对每行数据的?

解决方案 »

  1.   

    WPF
    winform
    asp.net
    这三个中好象都有这个控件,不知问的是哪个.
      

  2.   

    我也有同样的问题,难道.Net3.5的listview不能对每行数据进行事件响应?比如点击鼠标!
      

  3.   

    Winform的话,每个Item都有个Bounds,自己算一下就可以了
          private void listView1_MouseClick(object sender, MouseEventArgs e)
          {
                Point p = e.Location;
                foreach (ListViewItem item in listView1.Items)
                {
                    Rectangle r = item.Bounds;
                    if ((p.X >= r.X) && (p.Y >= r.Y) && (p.X <= r.Right) && (p.Y <= r.Bottom))
                        MessageBox.Show(item.Text);
                }
            }
      

  4.   

    private void listView1_MouseClick(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                {                String str = listView1.SelectedItems[0].Text;
                    Point p = new Point (e.X,e.Y );
                    contextMenuStrip1.Show(listView1, p);
                }
            }
      

  5.   


            private void listView1_MouseClick(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                {
                    ListViewItem item = listView1.HitTest(e.Location).Item;
                    if (item != null)
                    {
                        //TODO:show menu
                    }
                }
            }