DataGridViewCellToolTipTextNeededEventHandler Delegato
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta il metodo che gestirà l'evento CellToolTipTextNeeded di un oggetto 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)
Parametri
- sender
- Object
Origine dell'evento.
Oggetto DataGridViewCellToolTipTextNeededEventArgs che contiene i dati dell'evento.
Esempio
Nell'esempio di codice seguente vengono usate le descrizioni comandi per visualizzare informazioni aggiuntive sul contenuto della cella nella ReportsTo
colonna.
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
Commenti
L'evento CellToolTipTextNeeded si verifica solo quando la proprietà del controllo DataSource è impostata o la DataGridView relativa VirtualMode proprietà è true
.
Quando si gestisce l'evento CellToolTipTextNeeded , il testo Descrizione comando specificato nel gestore viene visualizzato ogni volta che il puntatore del mouse si trova su una cella e il valore della proprietà di controllo ShowCellToolTips è true
. L'evento CellToolTipTextNeeded è utile quando si desidera visualizzare le descrizioni comandi determinate dallo stato corrente o dal valore di una cella.
L'evento CellToolTipTextNeeded si verifica anche ogni volta che viene recuperato il valore della proprietà, a livello di DataGridViewCell.ToolTipText codice o quando il puntatore del mouse entra in una cella.
È possibile usare le DataGridViewCellEventArgs.ColumnIndex proprietà e RowIndex per determinare lo stato o il valore di una cella e usare queste informazioni per impostare la ToolTipText proprietà. Questa proprietà viene inizializzata con il valore della proprietà cell ToolTipText , che il valore dell'evento esegue l'override.
Gestire l'evento CellToolTipTextNeeded quando si usano grandi quantità di dati per evitare le penali per le prestazioni dell'impostazione del valore della cella ToolTipText per più celle. Per altre informazioni, vedere Procedure consigliate per ridimensionare il controllo DataGridView Windows Form.
Per altre informazioni su come gestire gli eventi, vedere la gestione e generazione di eventi.
Quando si crea un delegato DataGridViewCellToolTipTextNeededEventHandler, si identifica il metodo che gestirà l'evento. Per associare l'evento al gestore eventi in uso, aggiungere all'evento un'istanza del delegato. Il gestore eventi viene chiamato ogni volta che si verifica l'evento, a meno che non venga rimosso il delegato. Per altre informazioni sui delegati del gestore eventi, vedere Gestione e generazione di eventi.
Metodi di estensione
GetMethodInfo(Delegate) |
Ottiene un oggetto che rappresenta il metodo rappresentato dal delegato specificato. |