DataGridViewCellToolTipTextNeededEventHandler Delegat
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt die Methode zur Behandlung des CellToolTipTextNeeded-Ereignisses eines DataGridView-Objekts dar.
public delegate void DataGridViewCellToolTipTextNeededEventHandler(System::Object ^ sender, DataGridViewCellToolTipTextNeededEventArgs ^ e);
public delegate void DataGridViewCellToolTipTextNeededEventHandler(object sender, DataGridViewCellToolTipTextNeededEventArgs e);
public delegate void DataGridViewCellToolTipTextNeededEventHandler(object? sender, DataGridViewCellToolTipTextNeededEventArgs e);
type DataGridViewCellToolTipTextNeededEventHandler = delegate of obj * DataGridViewCellToolTipTextNeededEventArgs -> unit
Public Delegate Sub DataGridViewCellToolTipTextNeededEventHandler(sender As Object, e As DataGridViewCellToolTipTextNeededEventArgs)
Parameter
- sender
- Object
Die Quelle des Ereignisses.
Ein DataGridViewCellToolTipTextNeededEventArgs, das die Ereignisdaten enthält.
Beispiele
Im folgenden Codebeispiel werden QuickInfos verwendet, um zusätzliche Informationen zum Zellinhalt in der ReportsTo
Spalte anzuzeigen.
DataTable^ Populate( String^ query, bool resetUnsharedCounter )
{
if ( resetUnsharedCounter )
{
ResetCounter();
}
// Alter the data source as necessary
SqlDataAdapter^ adapter = gcnew SqlDataAdapter( query,
gcnew SqlConnection( L"Integrated Security=SSPI;Persist Security Info=False;"
L"Initial Catalog=Northwind;Data Source= localhost" ) );
DataTable^ table = gcnew DataTable;
adapter->Fill( table );
return table;
}
Label^ count;
int unsharedRowCounter;
void ResetCounter()
{
unsharedRowCounter = 0;
count->Text = unsharedRowCounter.ToString();
}
void dataGridView1_CellToolTipTextNeeded( Object^ /*sender*/,
DataGridViewCellToolTipTextNeededEventArgs^ e )
{
if ( theCellImHoveringOver->ColumnIndex == dataGridView1->Columns[ L"ReportsTo" ]->Index && theCellImHoveringOver->RowIndex > -1 )
{
String^ reportsTo = dataGridView1->Rows[ theCellImHoveringOver->RowIndex ]->Cells[ theCellImHoveringOver->ColumnIndex ]->Value->ToString();
if ( reportsTo->Equals( L"" ) )
{
e->ToolTipText = L"The buck stops here!";
}
else
{
DataTable^ table = Populate( String::Format( L"select firstname, lastname from employees where employeeid = '{0}'",
dataGridView1->Rows[ theCellImHoveringOver->RowIndex ]->Cells[ theCellImHoveringOver->ColumnIndex ]->Value ), false );
e->ToolTipText = String::Format( L"Reports to {0} {1}", table->Rows[ 0 ]->ItemArray[ 0 ], table->Rows[ 0 ]->ItemArray[ 1 ] );
}
}
}
private DataTable Populate(string query, bool resetUnsharedCounter)
{
if (resetUnsharedCounter)
{
ResetCounter();
}
// Alter the data source as necessary
SqlDataAdapter adapter = new SqlDataAdapter(query,
new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;" +
"Initial Catalog=Northwind;Data Source=localhost"));
DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
adapter.Fill(table);
return table;
}
private Label count = new Label();
private int unsharedRowCounter;
private void ResetCounter()
{
unsharedRowCounter = 0;
count.Text = unsharedRowCounter.ToString();
}
private void dataGridView1_CellToolTipTextNeeded(object sender,
DataGridViewCellToolTipTextNeededEventArgs e)
{
if (theCellImHoveringOver.ColumnIndex == dataGridView1.Columns["ReportsTo"].Index &&
theCellImHoveringOver.RowIndex > -1)
{
string reportsTo = dataGridView1.Rows[theCellImHoveringOver.RowIndex].
Cells[theCellImHoveringOver.ColumnIndex].Value.ToString();
if (String.IsNullOrEmpty(reportsTo))
{
e.ToolTipText = "The buck stops here!";
}
else
{
DataTable table = Populate(
"select firstname, lastname from employees where employeeid = '" +
dataGridView1.Rows[theCellImHoveringOver.RowIndex].
Cells[theCellImHoveringOver.ColumnIndex].Value.ToString() +
"'", false);
e.ToolTipText = "Reports to " + table.Rows[0].ItemArray[0] + " " +
table.Rows[0].ItemArray[1];
}
}
}
Private Function Populate(ByVal query As String, ByVal resetUnsharedCounter As Boolean) As DataTable
If resetUnsharedCounter Then
ResetCounter()
End If
' Alter the data source as necessary
Dim adapter As New SqlDataAdapter(query, _
New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;" & _
"Initial Catalog=Northwind;Data Source=localhost"))
Dim table As New DataTable()
table.Locale = System.Globalization.CultureInfo.InvariantCulture
adapter.Fill(table)
Return table
End Function
Private count As New Label()
Private unsharedRowCounter As Integer
Private Sub ResetCounter()
unsharedRowCounter = 0
count.Text = unsharedRowCounter.ToString()
End Sub
Private Sub DataGridView1_CellToolTipTextNeeded(ByVal sender As Object, _
ByVal e As DataGridViewCellToolTipTextNeededEventArgs) _
Handles dataGridView1.CellToolTipTextNeeded
If theCellImHoveringOver.ColumnIndex = dataGridView1.Columns("ReportsTo").Index AndAlso _
theCellImHoveringOver.RowIndex > -1 Then
Dim reportsTo As String = dataGridView1.Rows(theCellImHoveringOver.RowIndex). _
Cells(theCellImHoveringOver.ColumnIndex).Value.ToString()
If String.IsNullOrEmpty(reportsTo) Then
e.ToolTipText = "The buck stops here!"
Else
Dim table As DataTable = Populate( _
"select firstname, lastname from employees where employeeid = '" & _
dataGridView1.Rows(theCellImHoveringOver.RowIndex). _
Cells(theCellImHoveringOver.ColumnIndex).Value.ToString() & _
"'", False)
e.ToolTipText = "Reports to " & table.Rows(0).Item(0).ToString() & " " & table.Rows(0).Item(1).ToString()
End If
End If
End Sub
Hinweise
Das CellToolTipTextNeeded Ereignis tritt nur auf, wenn die DataGridView Steuerelementeigenschaft DataSource festgelegt ist oder die VirtualMode -Eigenschaft ist true
.
Wenn Sie das CellToolTipTextNeeded Ereignis behandeln, wird der QuickInfo-Text, den Sie im Handler angeben, immer angezeigt, wenn der Mauszeiger über einer Zelle und der Steuerelementeigenschaftswert ShowCellToolTips ist true
. Das CellToolTipTextNeeded Ereignis ist nützlich, wenn Sie QuickInfos anzeigen möchten, die vom aktuellen Zustand oder Wert einer Zelle bestimmt werden.
Das CellToolTipTextNeeded Ereignis tritt auch auf, wenn der Wert der DataGridViewCell.ToolTipText Eigenschaft abgerufen wird, entweder programmgesteuert oder wenn der Mauszeiger in eine Zelle eintritt.
Sie können die DataGridViewCellEventArgs.ColumnIndex Eigenschaften und RowIndex verwenden, um den Zustand oder Wert einer Zelle zu bestimmen, und diese Informationen verwenden, um die ToolTipText Eigenschaft festzulegen. Diese Eigenschaft wird mit dem Wert der Zelleigenschaft ToolTipText initialisiert, die vom Ereigniswert überschrieben wird.
Behandeln Sie das CellToolTipTextNeeded Ereignis, wenn Sie mit großen Datenmengen arbeiten, um Leistungseinbußen beim Festlegen des Zellwerts ToolTipText für mehrere Zellen zu vermeiden. Weitere Informationen finden Sie unter Empfohlene Vorgehensweisen für das Skalieren des DataGridView-Steuerelements in Windows Forms.
Weitere Informationen zum Behandeln von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.
Beim Erstellen eines DataGridViewCellToolTipTextNeededEventHandler-Delegaten bestimmen Sie die Methode für die Ereignisbehandlung. Um dem Ereignishandler das Ereignis zuzuordnen, fügen Sie dem Ereignis eine Instanz des Delegaten hinzu. Der Ereignishandler wird bei jedem Eintreten des Ereignisses aufgerufen, sofern der Delegat nicht entfernt wird. Weitere Informationen zu Ereignishandlerdelegaten finden Sie unter Behandeln und Auslösen von Ereignissen.
Erweiterungsmethoden
GetMethodInfo(Delegate) |
Ruft ein Objekt ab, das die Methode darstellt, die vom angegebenen Delegaten dargestellt wird. |