私はwinformアプリケーションを開発しており、Datagridviewを使用してレコードを表示しました。
現在、セルの内容を読み取り専用にする必要がありますが、同時に、エンドユーザーがセルの内容をクリップボードにコピーして編集できないようにしたいと考えています。
解決策があればおしえてください。
私はwinformアプリケーションを開発しており、Datagridviewを使用してレコードを表示しました。
現在、セルの内容を読み取り専用にする必要がありますが、同時に、エンドユーザーがセルの内容をクリップボードにコピーして編集できないようにしたいと考えています。
解決策があればおしえてください。
DataGridView.ReadOnly = True;
DataGridView.SelectionMode = DataGridViewSelectionMode.CellSelect;
次に、ユーザーはセルからデータ(文字列)を選択し、CTRL+Vでクリップボードに配置できます
ContextMenu を DataGrid に追加し、コピー アンド ペースト項目を追加して、Ctrl+V および Ctrl+C ショートカットを追加することもできます。
次に、それらのイベントを処理します。必要に応じて、メニューを Visible = false に設定すると、右クリックしてもメニューが表示されなくなりますが、ショートカットは引き続き機能します。
個人的には、右クリック メニューが DataGrid に追加するタッチが好きですが、それはあなたの呼び出しです。
このコードで試すことができます-に基づいてDataGridViewCell.OnKeyPress
リンク: http: //msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcell.onkeypress.aspx
private void DataGridViewCell_KeyPress(KeyPressEventArgs e, int index)
{
if ( (e.Key == Key.LeftCtrl || e.Key == Key.RightCtrl)
&& e.Key == Key.C)
{
//You can get your cell based on index
Clipboard.SetText(.....);
}
}
XAML に追加できます: ClipboardCopyMode= "IncludeHeader"/"ExcludeHeader"/"NONE"