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

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

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

Re[2]: DataGridViewCheckBoxのCheckについて


(過去ログ 98 を表示中)

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

■58332 / inTopicNo.1)  DataGridViewCheckBoxのCheckについて
  
□投稿者/ みっつ (1回)-(2011/03/31(Thu) 09:55:11)

分類:[C#] 

こんにちは
Windows XP
Visual Studio2010
C#で開発しています。

DataGridViewCheckBoxのCheckについてなのですが、

DataGridViewにCheckBoxがあることを
初めて知り、
プロパティウィンドウで
DataGridViewCheckBoxColumnを配置してみました。
FalseValueには0を
TrueValueには1を設定してあります。

その後、実行し、DataGridViewを表示させました。
DataGridViewCheckBoxが表示され、
感動していたのも一瞬でした・・・。

DataGridViewCheckBoxColumnをクリックしても
チェックがつかないのです。
これはなぜですか・・・?

クリックすれば
オンオフが出来ると思っていたので
困ってしまいました・・・。

どうかよろしくお願いいたします。
引用返信 編集キー/
■58339 / inTopicNo.2)  Re[1]: DataGridViewCheckBoxのCheckについて
□投稿者/ 魔界の仮面弁士 (2148回)-(2011/03/31(Thu) 10:46:21)
2011/03/31(Thu) 10:58:52 編集(投稿者)

No58332 (みっつ さん) に返信
> DataGridViewCheckBoxColumnをクリックしても
セルではなく、列全体をクリックしているという事ですか?

クリックでチェックしたいのであれば、列ではなく、
各セル内のチェックボックス部をクリックする必要があります。

もしも列クリックで全部のチェックボックスの状態を変更させたいなら、
そのようなコードを記述する必要があるでしょう。

public partial class Form1 : Form
{
 DataGridView dgv;
 DataGridViewCheckBoxColumn col;
 public Form1()
 {
  // InitializeComponent();

  dgv = new DataGridView();
  col = new DataGridViewCheckBoxColumn();
  col.FalseValue = 0;
  col.TrueValue = 1;
  dgv.Columns.Add(col);
  dgv.RowCount = 20;
  dgv.Dock = DockStyle.Fill;
  Controls.Add(dgv);
  dgv.ColumnHeaderMouseClick += dgv_ColumnHeaderMouseClick;
 }

 void dgv_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
 {
  if (e.ColumnIndex == col.Index)
  {
   dgv.CancelEdit();
   dgv.BeginEdit(false);
   for (int r = dgv.RowCount - (dgv.AllowUserToAddRows ? 2 : 1); r >= 0; r--)
   {
    dgv[e.ColumnIndex, r].Value = col.TrueValue;
   }
   dgv.EndEdit();
  }
 }
}
引用返信 編集キー/
■58341 / inTopicNo.3)  Re[2]: DataGridViewCheckBoxのCheckについて
□投稿者/ プシケ (1回)-(2011/03/31(Thu) 11:04:30)
DataGridViewやDataGridViewCheckBoxColumnのReadOnlyプロパティがTrueになっているというオチはないですよね?
引用返信 編集キー/
■58343 / inTopicNo.4)  Re[2]: DataGridViewCheckBoxのCheckについて
□投稿者/ みっつ (2回)-(2011/03/31(Thu) 11:17:51)
No58339 (魔界の仮面弁士 さん) に返信
> 2011/03/31(Thu) 10:58:52 編集(投稿者)
>
> ■No58332 (みっつ さん) に返信
>>DataGridViewCheckBoxColumnをクリックしても
> セルではなく、列全体をクリックしているという事ですか?
>
> クリックでチェックしたいのであれば、列ではなく、
> 各セル内のチェックボックス部をクリックする必要があります。
>
> もしも列クリックで全部のチェックボックスの状態を変更させたいなら、
> そのようなコードを記述する必要があるでしょう。
>
> public partial class Form1 : Form
> {
>  DataGridView dgv;
>  DataGridViewCheckBoxColumn col;
>  public Form1()
>  {
>   // InitializeComponent();
>
>   dgv = new DataGridView();
>   col = new DataGridViewCheckBoxColumn();
>   col.FalseValue = 0;
>   col.TrueValue = 1;
>   dgv.Columns.Add(col);
>   dgv.RowCount = 20;
>   dgv.Dock = DockStyle.Fill;
>   Controls.Add(dgv);
>   dgv.ColumnHeaderMouseClick += dgv_ColumnHeaderMouseClick;
>  }
>
>  void dgv_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
>  {
>   if (e.ColumnIndex == col.Index)
>   {
>    dgv.CancelEdit();
>    dgv.BeginEdit(false);
>    for (int r = dgv.RowCount - (dgv.AllowUserToAddRows ? 2 : 1); r >= 0; r--)
>    {
>     dgv[e.ColumnIndex, r].Value = col.TrueValue;
>    }
>    dgv.EndEdit();
>   }
>  }
> }


すみません、セルをクリックしたいです。
引用返信 編集キー/
■58344 / inTopicNo.5)  Re[3]: DataGridViewCheckBoxのCheckについて
□投稿者/ みっつ (3回)-(2011/03/31(Thu) 11:19:21)
No58341 (プシケ さん) に返信
> DataGridViewやDataGridViewCheckBoxColumnのReadOnlyプロパティがTrueになっているというオチはないですよね?

ありがとうございます。
DataGridViewCheckBoxColumnのReadOnlyプロパティがFalseに
なっているのは確認済みだったのですが
DataGridViewのReadOnlyプロパティがあることを忘れてました・・・。

これが原因でした・・・。
DataGridViewのReadOnlyプロパティがTrueになっていました。
ありがとうございました!
また何かあればよろしくお願いいたします!
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -