閱讀英文

共用方式為


DataGridViewCellToolTipTextNeededEventHandler 代理人

定義

代表將處理 CellToolTipTextNeededDataGridView 事件的方法。

C#
public delegate void DataGridViewCellToolTipTextNeededEventHandler(object sender, DataGridViewCellToolTipTextNeededEventArgs e);
C#
public delegate void DataGridViewCellToolTipTextNeededEventHandler(object? sender, DataGridViewCellToolTipTextNeededEventArgs e);

參數

sender
Object

事件的來源。

範例

下列程式代碼範例會使用工具提示來顯示數據行中 ReportsTo 儲存格內容的其他資訊。

C#
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];
        }
    }
}

備註

CellToolTipTextNeeded只有在設定控件DataSource屬性或其屬性為 trueDataGridView,才會VirtualMode發生此事件。

當您處理 CellToolTipTextNeeded 事件時,每當滑鼠指標位於儲存格上方,且控件 ShowCellToolTips 屬性值為 true時,就會顯示處理程式中指定的工具提示文字。 當您想要顯示數據格目前狀態或值所決定的工具提示時,此 CellToolTipTextNeeded 事件很有用。

CellToolTipTextNeeded每當以程式設計方式擷取屬性的值DataGridViewCell.ToolTipText,或滑鼠指標進入單元格時,也會發生此事件。

您可以使用 DataGridViewCellEventArgs.ColumnIndexRowIndex 屬性來判斷儲存格的狀態或值,並使用這項資訊來設定 ToolTipText 屬性。 這個屬性會使用事件值覆寫的儲存格 ToolTipText 屬性值初始化。

CellToolTipTextNeeded處理大量數據時處理事件,以避免設定ToolTipText多個儲存格單元格值的效能負面影響。 如需詳細資訊,請參閱 縮放 Windows Form DataGridView 控制項的最佳做法

如需如何處理事件的詳細資訊,請參閱 處理和引發事件

建立 DataGridViewCellToolTipTextNeededEventHandler 委派時,必須識別處理事件的方法。 若要使事件與您的事件處理常式產生關聯,請將委派的執行個體 (Instance) 加入至事件。 除非您移除委派,否則每當事件發生時就會呼叫事件處理常式。 如需事件處理程式委派的詳細資訊,請參閱 處理和引發事件

擴充方法

GetMethodInfo(Delegate)

取得表示特定委派所代表之方法的物件。

適用於

產品 版本
.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, 10

另請參閱