C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

C# DataGridView 特定のセル上にあるボタン

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■90790 / inTopicNo.1)  C# DataGridView 特定のセル上にあるボタン
  
□投稿者/ Shou (1回)-(2019/04/22(Mon) 20:31:08)

分類:[C#] 

C# を使って開発しています。
(Visual Studio Express 2015)

DataGridViewの3列目・4列目にボタンを配置しています。
(DataGridViewButtonColumnを使用)
特定の行については、ボタンのクリックができない状態にしたいのですが
どのように実装するか、教えていただけないでしょうか?

ちなみに、DataGridViewのCellBeginEditを使って、特定の行 かつ (3列目または4列目) のときに
e.Cancel = true; (eはイベントの引数、DataGridViewCellCancelEventArgs)とするように実装しましたが
ボタンは押せる状態でした。
引用返信 編集キー/
■90796 / inTopicNo.2)  Re[1]: C# DataGridView 特定のセル上にあるボタン
□投稿者/ Hongliang (787回)-(2019/04/23(Tue) 09:57:30)
見た目の変化が不要なのであれば、ボタンクリック時のCellContentClickイベントで、その行が有効かどうか判定し、有効な時だけ続きの処理に進むようにするだけで十分でしょう。

通常のButtonと同様にEnabled=falseな外見を表示させたい場合、標準のプロパティやイベント処理だけでは対応できないようです。
https://docs.microsoft.com/ja-jp/dotnet/framework/winforms/controls/disable-buttons-in-a-button-column-in-the-datagrid
こういう感じに実装する必要があるみたいですね。
// DataGridViewDisableButtonCell::Enabled::setで、変更があった際に親DataGridViewのInvalidateCellを呼び出す必要がある気がする。
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ