Winform DataGridViewTextBoxCell 編輯添加右鍵菜單,編輯選中文本

image

如上是我們使用DataGridView時,編輯單元格右鍵會出現系統菜單。現在我們添加自己的右鍵菜單,並可以操作選中文字。

DataGridViewTextBoxCell:

DataGridViewTextBoxCell 類是一種專用類型 DataGridViewCell ,用於顯示基於文本的單個可編輯信息字符串。 當前選定的 DataGridViewTextBoxCell 控件承載一個 DataGridViewTextBoxEditingControl 控件,用戶可以編輯單元格的值, (假定 ReadOnly 屬性 DataGridViewTextBoxCell 設置爲 false) 。

基於以上文檔對DataGridViewTextBoxCell的介紹我們知道DataGridViewTextBoxCell在編輯的時候實際是承載了一個DataGridViewTextBoxEditingControl控件。那麼我們可以從DataGridViewTextBoxEditingControl控件下手。

DataGridViewTextBoxEditingControl:

DataGridViewTextBoxEditingControl 是實現 接口的專用類型的 TextBox 控件 IDataGridViewEditingControl ,允許在單元格處於編輯模式時將其託管在 DataGridViewTextBoxCell 中。
處理 事件以 EditingControlShowing 在單元格進入編輯模式時執行編輯控件的自定義初始化。 若要自定義控件的顯示特徵,請設置 屬性返回 DataGridViewEditingControlShowingEventArgs.CellStyle 的 對象的屬性,而不是設置 屬性返回的控件的屬性 DataGridViewEditingControlShowingEventArgs.Control 。

如上描述我在EditingControlShowing事件中找到了添加右鍵的思路。

        private void dgv_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            e.Control.ContextMenuStrip = contextMSEdit;
        }

image

右鍵功能:

        private void 我選擇的文字ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var editingControl = contextMSEdit.SourceControl as DataGridViewTextBoxEditingControl;
            var selectText = editingControl.SelectedText;
           
            MessageBox.Show(selectText);
        }

image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章