第一种方法,从datagrid继承,然后override MouseMove这个事件,private int currentHoverRow = 0, oldHoverRow = 0;
protected override void OnMouseMove(System.Windows.Forms.MouseEventArgs e)
{
if(e.Button != MouseButtons.Left)
{
base.OnMouseMove(e);
} DataGrid.HitTestInfo hti = this.HitTest(new Point(e.X, e.Y));
if(hti.Type == DataGrid.HitTestType.RowResize)
{
return; //no baseclass call
}
if(hti.Type == DataGrid.HitTestType.Cell)
{
currentHoverRow = hti.Row;
if(oldHoverRow > -1)
{
UnSelect(oldHoverRow);
Select(currentHoverRow);
oldHoverRow = currentHoverRow;
}
}
}第二种方式,和上面类似,只不过不继承
dataGrid1.MouseMove += new MouseEventHandler(myMouseMoveMethod);
myMouseMoveMethod方法,可以使用上面的内容。
protected override void OnMouseMove(System.Windows.Forms.MouseEventArgs e)
{
if(e.Button != MouseButtons.Left)
{
base.OnMouseMove(e);
} DataGrid.HitTestInfo hti = this.HitTest(new Point(e.X, e.Y));
if(hti.Type == DataGrid.HitTestType.RowResize)
{
return; //no baseclass call
}
if(hti.Type == DataGrid.HitTestType.Cell)
{
currentHoverRow = hti.Row;
if(oldHoverRow > -1)
{
UnSelect(oldHoverRow);
Select(currentHoverRow);
oldHoverRow = currentHoverRow;
}
}
}第二种方式,和上面类似,只不过不继承
dataGrid1.MouseMove += new MouseEventHandler(myMouseMoveMethod);
myMouseMoveMethod方法,可以使用上面的内容。
解决方案 »
- C#写一个winfrom程序,利用一个button事件来将两个本地SQLSER2008数据库连起来,把一个数据库中的某些表数据更新到另一个数据库表中,表结构不同
- Windows 服務打開 WinForm程序
- 大家帮我看看这样的存储过程怎么写??
- 关于在C#里调用CMD的问题
- 一个WinForm的显示问题,求助!!
- 急求 如何把dropdownlist的边框去掉
- 同时保存数据是出错
- listview中如何加入TextBox、dropdownlist之类的控件
- 要在自定义控件中接受数据集有什么好办法?
- 列名无效,请大家帮忙,在线等待
- 有无C++到C#的翻译器,我知道java的有
- 关于用Graphics对象来绘制的问题。
结果有找不到引用等错误,请问大哥我该如何
定义、引用上面的例子呢?谢谢了先
{
ListItemType itemType = e.Item.ItemType;
if (itemType == ListItemType.Item || itemType == ListItemType.AlternatingItem )
{
e.Item.Attributes.Add("onmouseover","this.bgColor=#0000ff");
}
}
e.Item.Attributes.Add("onmouseout","this.bgColor=#ffffff");
e.Item.Style.Add("CURSOR","hand");