0
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 の順序がランダムに混同されます。

*** datagridview ではなく datagrid を使用

*** 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());
}
4

1 に答える 1

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。私の例でdtは、私の DataGrid dg が使用している DataTable です。

于 2012-05-23T16:27:43.087 に答える