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

フォームのコンストラクターでセルのツールチップ値を設定しようとしないでください。代わりに、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

これを試して

   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 に答える
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 に答える