pursuedream
成功=水平+业务+沟通+判断
运用鼠标事件point 类  Point mousePos = new Point(0,0);
在ListView的鼠标事件下
        private void listView1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            
//record mouse position
            mousePos.X = e.X;
            mousePos.Y 
= e.Y;
        }
然后对ListView的双击事件处理
       //found clicked item
   ListViewItem item = listView1.GetItemAt(mousePos.X,mousePos.Y); //获取鼠标所点击在哪一列上
 存在ListView产生滑块,这样就不能精确获得显示列的X,Y值,为获取滑块滑动的距离,可以使用API来得到
 using System.Runtime.InteropServices;          
 [DllImport("user32")]
 public static extern int GetScrollPos(int hwnd, int nBar) ;

                //locate text box
                Rectangle rect = item.GetBounds(ItemBoundsPortion.Entire);
                
int StartX = rect.Left;
                
int ColumnIndex = 0;
                
//get ColumnIndex
                //得到滑块的位置
                int pos = GetScrollPos(this.
listView1.Handle.ToInt32(),0);
                foreach (ColumnHeader Column in listView1.Columns)
                {
                    
if (mousePos.X + pos >=StartX + Column.Width)
                    {                                    
                        StartX 
+=Column.Width;
                        ColumnIndex 
+= 1;
                    }

                }

                
//locate the txtinput and hide it. txtInput为TextBox
                txtInput.Parent = listView1;
                
//begin edit
                if(item != null)
                {
                    rect.X 
= StartX;
                    rect.Width 
= listView1.Columns[ColumnIndex].Width; //得到长度和ListView的列的长度相同
                    txtInput.Bounds 
= rect;
                    
//show textbox
                    txtInput.Text = item.SubItems[ColumnIndex].Text;
                    txtInput.Visible 
= true;
                    txtInput.Focus();
                }
向ListView加载数据
ListViewItem item;
foreach(DataRow dr in ds.Tables[0].Rows)
{
      item = new ListViewItem(dr[0].ToString());
       item.subItem.add(dr[1].ToString());
     ListView.Item.Add(item);
}




posted on 2007-07-05 17:04  pursuedream  阅读(13716)  评论(2编辑  收藏  举报