1

我正在动态添加一个DataGridViewCheckBoxColumn到我的DataGridView.

但是,我似乎无法将工具提示添加到复选框:

// 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;
        }

    }

此方法不显示任何工具提示。我错过了一些明显的东西吗?

4

3 回答 3

1

不要尝试在表单的构造函数中设置单元格的 ToolTip 值。尝试在 Load 或 Shown 事件中设置它们:

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);
}
于 2012-05-23T15:33:44.157 回答
0

将此代码添加到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.";
        }
    }
于 2012-05-23T15:41:47.867 回答
0

尝试这个

   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.";
    }
于 2012-05-23T15:09:39.020 回答