English 中文(简体)
在 DataGridView checkBoxColumn 上未显示的工具提示
原标题:Tooltip not showing on DataGridViewCheckBoxColumn
  • 时间:2012-05-23 14:24:05
  •  标签:
  • c#
  • winforms

我正在动态地为我的 DataGridView checkBoxColumn 添加一个

然而,我似乎无法在复选框中添加工具提示:

// Method to Populate the DataGrid
    private void PopulateDataGrid(objPatient patient)
    {
        this.uiDocumentDataGrid.DataSource = DataManager.GetDocumentData(patient);
        // Hide unnecessary columns
        this.uiDocumentDataGrid.Columns["Forename"].Visible = false;
        this.uiDocumentDataGrid.Columns["Surname"].Visible = false;

        // Add column for selection
        DataGridViewCheckBoxColumn selectedColumn = new DataGridViewCheckBoxColumn();
        selectedColumn.Name = "Selected";
        selectedColumn.HeaderText = "Attach";
        selectedColumn.ReadOnly = false;
        this.uiDocumentDataGrid.Columns.Insert(0,selectedColumn);

        // Set columns except checkbox to readonly
        foreach(DataGridViewColumn c in this.uiDocumentDataGrid.Columns)
        {
            if (c.Index > 0)
            {
                c.ReadOnly = true;
            }
        }

        // Refresh the view in case of draw issues
        this.uiDocumentDataGrid.Refresh();

        // Add tooltip to each checkbox
        foreach (DataGridViewRow r in uiDocumentDataGrid.Rows)
        {
            r.Cells["Selected"].ToolTipText = "Check this box to select this document.";
        }

        // Disable the functionality button if no rows.
        if (this.uiDocumentDataGrid.RowCount == 0)
        {
            this.uiSendButton.Enabled = false;
        }

    }

没有工具提示显示这个方法。 我错过了明显的东西吗?

最佳回答

不要尝试在窗体的构造器中设置单元格的工具提示值。 尝试在装入或显示事件中设置单元格值 :

protected override void OnLoad(EventArgs e) {
  foreach (DataGridViewRow r in uiDocumentDataGrid.Rows)
  {
    r.Cells["Selected"].ToolTipText = "Check this box to select this document.";
  } 
  base.OnLoad(e);
}
问题回答

试试这个

   DataGridViewCheckBoxColumn selectedColumn = new DataGridViewCheckBoxColumn();
   selectedColumn.Name = "Selected";
   selectedColumn.HeaderText = "Attach";
   selectedColumn.ReadOnly = false;
   this.uiDocumentDataGrid.Columns.Insert(0,selectedColumn);
   uiDocumentDataGrid.CellToolTipTextNeeded += new DataGridViewCellToolTipTextNeededEventHandler(uiDocumentDataGrid_CellToolTipTextNeeded);

以当时的事件的处理者盟誓,

    void uiDocumentDataGrid_CellToolTipTextNeeded(object sender, DataGridViewCellToolTipTextNeededEventArgs e)
    {
        if (e.ColumnIndex == 0)
            e.ToolTipText = "Check this box to select this document.";
    }

将此代码添加到 < code> CellFormatting 事件后, 我为我分类了它。 我为后代添加了这个答案, 但是会接受LarsTech的回答作为他的作品, 并且是他指示我参加这次活动的。

private void uiDocumentDataGrid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
        if(e.ColumnIndex == 0)
        {
            DataGridViewCell cell = this.uiDocumentDataGrid.Rows[e.RowIndex].Cells[e.ColumnIndex];
            cell.ToolTipText = "Check this box to select this document.";
        }
    }




相关问题
Bring window to foreground after Mutex fails

I was wondering if someone can tell me what would be the best way to bring my application to the foreground if a mutex was not able to be created for a new instance. E.g.: Application X is running ...

How to start WinForm app minimized to tray?

I ve successfully created an app that minimizes to the tray using a NotifyIcon. When the form is manually closed it is successfully hidden from the desktop, taskbar, and alt-tab. The problem occurs ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

Handle DataTable.DataRow cell change event

I have a DataTable that has several DataColumns and DataRow. Now i would like to handle an event when cell of this DataRow is changed. How to do this in c#?

Apparent Memory Leak in DataGridView

How do you force a DataGridView to release its reference to a bound DataSet? We have a rather large dataset being displayed in a DataGridView and noticed that resources were not being freed after the ...

ALT Key Shortcuts Hidden

I am using VS2008 and creating forms. By default, the underscore of the character in a textbox when using an ampersand is not shown when I run the application. ex. "&Goto Here" is not ...

WPF-XAML window in Winforms Application

I have a Winforms application coded in VS C# 2008 and want to insert a WPF window into the window pane of Winforms application. Could you explain me how this is done.

热门标签