0

DataGridViewCheckBoxCellのチェックボックスのサイズを変更する方法[セルのサイズではありません].net 3.5を使用しています

4

1 に答える 1

3

チェックボックスのセル内に描かれた正方形のサイズを変更したいと思います。その場合、非常に簡単な解決策はないのではないかと思いますが、「チェック済み」、「チェックなし」ボックスの代わりにカスタム ペイント イメージを使用して結果を得ることができます。データグリッドビューを含むフォームのイメージリストに 2 つのイメージ (あなたにとって重要なサイズであるため、必要なサイズ) を追加します。(もちろん、2 つの画像は Checked/Unchecked チェックボックスのビジュアルに対応します) DataGridView の「CellPainting」イベントを処理し、次のように記述します。

if (e.ColumnIndex == 0 && e.RowIndex >= 0)//Assuming the checkbox is in Column 0
        {
            e.PaintBackground(e.ClipBounds, false);
            int index = 0;//Unchecked image
            if (e.Value != null && (bool)e.Value == true)
                index = 1;//Checked image
                e.Graphics.DrawImageUnscaled(imageList1.Images[index], e.CellBounds.X + 5, e.CellBounds.Y + 5);

            e.Handled = true;
        }

セル内のチェック/チェックされていない画像を取得するには、CellClick イベントで基になるデータソースの値を設定するだけです (これは、ユーザーがセルをクリックしたときにチェックボックスがオンになり、読み取られた場合にチェックされる場合です)。その場合のみ、これは必要ない場合があります)

注: これよりも洗練された解決策が得られるかどうかはわかりません。誰かがより優れたアイデアを持っているかどうかを確認してください。

于 2012-04-12T05:28:19.003 に答える