回答編集履歴

1

C#の検証コードを追記

2017/11/16 02:23

投稿

ShikaTech
ShikaTech

スコア468

test CHANGED
@@ -1,3 +1,97 @@
1
1
  `DataGridView1.Rows(e.RowIndex).Cells.Item("SEL").Value= "False"`
2
2
 
3
3
  では?
4
+
5
+
6
+
7
+ 追記
8
+
9
+ --
10
+
11
+ ものすごい雑な検証コードですが、これでチェックボックスは外れました。
12
+
13
+ ```C#
14
+
15
+ private void Form1_Load(object sender, EventArgs e)
16
+
17
+ {
18
+
19
+ var gv = new DataGridView()
20
+
21
+ {
22
+
23
+ Dock = DockStyle.Fill,
24
+
25
+ AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill,
26
+
27
+ Parent = this
28
+
29
+ };
30
+
31
+
32
+
33
+ var cbx = new DataGridViewCheckBoxColumn()
34
+
35
+ {
36
+
37
+ TrueValue = "True",
38
+
39
+ FalseValue = "False"
40
+
41
+ };
42
+
43
+ var tbx = new DataGridViewTextBoxColumn();
44
+
45
+ gv.Columns.AddRange(cbx, tbx);
46
+
47
+ gv.Columns[0].HeaderText = "チェックボックス";
48
+
49
+ gv.Columns[1].HeaderText = "テキスト";
50
+
51
+
52
+
53
+ gv.CellValueChanged += GvOnCellValueChanged;
54
+
55
+
56
+
57
+ this.Controls.Add(gv);
58
+
59
+ this.Controls.Add(new Label() { Name = "Message" });
60
+
61
+ }
62
+
63
+
64
+
65
+ private void GvOnCellValueChanged(object sender, DataGridViewCellEventArgs e)
66
+
67
+ {
68
+
69
+ var gv = (DataGridView)sender;
70
+
71
+ if (gv.Rows[e.RowIndex].Cells[0].Value == null)
72
+
73
+ return;
74
+
75
+ var chkValue = gv.Rows[e.RowIndex].Cells[0].Value.ToString();
76
+
77
+ if (chkValue == "True")
78
+
79
+ {
80
+
81
+ var tbxValue = gv.Rows[e.RowIndex].Cells[1].Value;
82
+
83
+ if (tbxValue != null && !string.IsNullOrWhiteSpace(tbxValue.ToString()) && int.Parse(tbxValue.ToString()) <= 10)
84
+
85
+ {
86
+
87
+ this.Controls.Find("Message", true)[0].Text = "数量が10以下です。";
88
+
89
+ gv.Rows[e.RowIndex].Cells[0].Value = "False";
90
+
91
+ }
92
+
93
+ }
94
+
95
+ }
96
+
97
+ ```