private void datagridSignal_MouseMove(object sender, MouseEventArgs e)
{ this.toolTip.Hide(datagridSignal);
this.toolTip.RemoveAll();
DataTable dt = GetSignalTable();
DataView dv = new DataView(dt);
Point prop = new Point(e.X, e.Y);
System.Windows.Forms.DataGrid.HitTestInfo myHitTest;
myHitTest = datagridSignal.HitTest(prop.X, prop.Y);
this.toolTip.SetToolTip(datagridSignal, " ID = '" + (int)dv[myHitTest.Row][0] + "' '" + myHitTest.Row + "'");
}
到目前为止,这是我的代码,遗憾的是它并没有提供准确的结果..出于某种原因,即使正在显示正确的索引,它也会随机混淆ID的顺序。
***使用datagrid,而不是datagridview
*** Visualstudio2005环境中的Visual C#2.0
编辑:
private void dataGridSignal_MouseMove(object sender, MouseEventArgs e)
{
this.toolTip.Hide(dataGridSignal);
this.toolTip.RemoveAll();
System.Windows.Forms.DataGrid.HitTestInfo myHitTest;
myHitTest = dataGridSignal.HitTest(e.X, e.Y);
this.toolTip.SetToolTip(dataGridSignal, " ID = " + ((int)this.GetTable().Rows[myHitTest.Row][0]).ToString() + " "+ myHitTest.Row.ToString());
}
答案 0 :(得分:0)
我不能复制它。这对我有用:
void dg_MouseMove(object sender, MouseEventArgs e) {
this.toolTip1.Hide(dg);
this.toolTip1.RemoveAll();
System.Windows.Forms.DataGrid.HitTestInfo myHitTest = dg.HitTest(e.X, e.Y);
if (myHitTest.Row > -1) {
this.toolTip1.SetToolTip(dg, "Over " + dt.Rows[myHitTest.Row][0].ToString());
this.Text = "Over " + dt.Rows[myHitTest.Row][0].ToString();
}
}
我只能猜测DataGrid使用的DataSource与来自GetSignalTable
的DataSource不同。在我的示例中,dt
是我的DataGrid dg正在使用的DataTable。