DataGridViewCellToolTipTextNeededEventHandler Délégué
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente la méthode qui gérera l'événement CellToolTipTextNeeded d'un DataGridView.
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)
- sender
- Object
Source de l'événement.
DataGridViewCellToolTipTextNeededEventArgs qui contient les données d’événement.
L’exemple de code suivant utilise des info-bulles pour afficher des informations supplémentaires sur le contenu des cellules dans la ReportsTo
colonne.
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
L’événement CellToolTipTextNeeded se produit uniquement lorsque la propriété de DataGridView contrôle DataSource est définie ou que sa VirtualMode propriété est true
.
Lorsque vous gérez l’événement CellToolTipTextNeeded , le texte d’info-bulle que vous spécifiez dans le gestionnaire s’affiche chaque fois que le pointeur de la souris se trouve sur une cellule et que la valeur de la propriété de contrôle ShowCellToolTips est true
. L’événement CellToolTipTextNeeded est utile lorsque vous souhaitez afficher des info-bulles déterminées par l’état actuel ou la valeur d’une cellule.
L’événement CellToolTipTextNeeded se produit également chaque fois que la valeur de la DataGridViewCell.ToolTipText propriété est récupérée, soit par programmation, soit lorsque le pointeur de la souris entre dans une cellule.
Vous pouvez utiliser les DataGridViewCellEventArgs.ColumnIndex propriétés et RowIndex pour déterminer l’état ou la valeur d’une cellule, et utiliser ces informations pour définir la ToolTipText propriété. Cette propriété est initialisée avec la valeur de la propriété de cellule ToolTipText , que la valeur de l’événement remplace.
Gérez l’événement CellToolTipTextNeeded lors de l’utilisation de grandes quantités de données pour éviter les pénalités de performances associées à la définition de la valeur de cellule ToolTipText pour plusieurs cellules. Pour plus d'informations, consultez Meilleures pratiques pour la mise à l'échelle du contrôle DataGridView Windows Forms.
Pour plus d’informations sur la façon de gérer les événements, consultez gestion et déclenchement d’événements.
Lorsque vous créez un délégué DataGridViewCellToolTipTextNeededEventHandler, vous identifiez la méthode qui gérera l'événement. Pour associer l'événement au gestionnaire d'événements, ajoutez une instance du délégué à l'événement. Le gestionnaire d'événements est appelé chaque fois qu'un événement se produit, sauf si vous supprimez le délégué. Pour plus d’informations sur les délégués du gestionnaire d’événements, consultez Gestion et levée d’événements.
Get |
Obtient un objet qui représente la méthode représentée par le délégué spécifié. |
Produit | Versions |
---|---|
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
Windows Desktop | 3.0, 3.1, 5, 6, 7, 8, 9 |
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :