VISH,Inc.

DataGridViewでのクリップボードへのコピー

DataGridViewでのクリップボードへのコピーの動作において、
セルを編集している状態の時は選択しているテキストをコピーし、
セルを編集していない状態の時は選択行ごとコピーする場合、
以下の方法で実現できたので紹介します。

private void dataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
    if (e.Control is DataGridViewTextBoxEditingControl)
    {
        dataGridView.ClipboardCopyMode = DataGridViewClipboardCopyMode.Disable;

        //編集のために表示されているコントロールを取得
        DataGridViewTextBoxEditingControl tb = (DataGridViewTextBoxEditingControl)e.Control;

        //イベントハンドラを削除
        tb.Validated -= new EventHandler(dataGridViewTextBox_Validated);
        // イベントハンドラを追加
        tb.Validated += new EventHandler(dataGridViewTextBox_Validated);
    }
}

private void dataGridViewTextBox_Validated(object sender, EventArgs e)
{
    dataGridView.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText;
}
blog.vish.co.jp

Leave a Reply


VISH企業サイト
サイトマスター.jp
モバイルサイト制作・構築