DataGridViewButtonColumn
はDataGridViewCheckBoxColumn
のように動作します。ボタン内にある画像がtrue
、false
として別の画像があり、プロパティにDataMember
がバインドされていることを意味します。 DataGridViewCheckBoxColumn
とoverride
paint
メソッドを継承するクラスは "すべき"と思う。DataGridViewCheckBoxColumnとして機能するDataGridViewButtonColumn
答えて
DataGridViewCheckBoxColumn
を使用しますが、CellPaint
イベントを処理すると、DataGridView
というイベントが表示され、チェックされた状態とチェックされていない状態の画像が描画されます。
例
作成Form
Form1
命名し、フォーム上のDataGridView
コントロールをドロップすると、コードを次のようにForm1.cs
の内容を交換してください。また、Checked
と
UnChecked
の画像を
Resources
に追加してください。
次に、あなたは、このような結果が表示されます。
public Form1()
{
InitializeComponent();
this.Load += Form1_Load;
this.dataGridView1.CellPainting += dataGridView1_CellPainting;
}
private void Form1_Load(object sender, EventArgs e)
{
var dt = new DataTable();
dt.Columns.Add("Column1", typeof(bool));
dt.Rows.Add(false);
dt.Rows.Add(true);
this.dataGridView1.DataSource = dt;
}
void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.ColumnIndex == 0 && e.RowIndex >= 0)
{
var value = (bool?)e.FormattedValue;
e.Paint(e.CellBounds, DataGridViewPaintParts.All &
~DataGridViewPaintParts.ContentForeground);
var img = value.HasValue && value.Value ?
Properties.Resources.Checked : Properties.Resources.UnChecked;
var size = img.Size;
var location = new Point((e.CellBounds.Width - size.Width)/2,
(e.CellBounds.Height - size.Height)/2);
location.Offset(e.CellBounds.Location);
e.Graphics.DrawImage(img, location);
e.Handled = true;
}
}
簡単な質問私はコードをスタンドアローンのDataGridViewColumnに移動したので、自由に使用できます。それは動作していますが、私は編集モードになっているときにビジュアルアップデートを取得しません。アップデートは、終了するときにのみ有効です。どんな考え? – ihisham
'DataGridViewCheckBoxColumn'から派生してもよろしいですか?うーん、あなたが作成したカスタム列のコードを含む新しい質問を投稿するほうがいいかもしれません。 –
ここで私が使用したコードで問題を投稿するhttps://stackoverflow.com/questions/46709110/custom-datagridviewcheckboxcell-visual-update-doesnt-work-in-edit-mode – ihisham
- 1. DataGridViewCheckBoxColumnウィンドウ
- 2. DatagridviewbuttonColumnの幅と色を調整する
- 3. PowerShellのDataGridViewButtonColumn:カスタマイズ
- 4. パラメータとしての機能とパラメータとしての機能ポインタ
- 5. DataGridViewButtonColumnボタンバインディングを有効にするブールフィールド
- 6. ブロック機能は他のブロック機能のパラメータとして機能しますか?
- 7. DataGridViewCheckBoxColumn CellContentClickイベントの問題
- 8. ハイパーリンクとして機能するGWT-ボタン
- 9. Node.jsがマイクロサービスサービスとして機能する
- 10. ^バッチスクリプトで機能するpararmeterとして
- 11. 機能は、私はとてもとしての機能を持っている
- 12. なぜこのコードはミドルウェアとして機能し、機能として機能しませんか?
- 13. オブジェクトパラメーターとしての機能
- 14. Haskell:Typedeclarationとしての機能
- 15. 新しい機能を友人機能としてオーバーロードしていますか?
- 16. はテンプレートパラメータとして機能します
- 17. エディタペインとして機能できるコンポーネント
- 18. はサーブレットとして機能しますが、Javaクラスとしては機能しません。どうして?
- 19. C#datagridviewbuttoncolumn表示されないテキスト
- 20. リクエストハンドラ機能としてpassport認証機能を処理する方法
- 21. datepickerを取得すると、エラーとして機能しない
- 22. typedefを使用してパラメータとして機能するポインタ
- 23. テーブルのsqlalchemy検索機能がclassmethodとして機能しますか?
- 24. コールがソート機能として機能しないのはなぜですか?
- 25. DataGridViewCheckBoxColumnがづけしによるレベルの保護
- 26. マウスオーバー機能とマウス放置機能は、ウィンドウのサイズを変更すると機能し続ける
- 27. クリック機能とホバー機能
- 28. 戻るボタンとして機能するボタンを設定する
- 29. 非バインドのDataGridViewにDataGridViewButtonColumnを使用する方法
- 30. セル内のDataGridViewButtonColumnの値を取得/設定する方法は?
だからあなたの質問は何ですか?何を試しましたか? –
これまでのところ、私はペイントの方法で立ち往生しています。それで何をすべきかわからない – ihisham
何かを継承する必要はありません。グリッドのCellPaintingイベントを使用するだけです。 – LarsTech