回答編集履歴

1

編集

2019/08/03 11:17

投稿

shinami
shinami

スコア334

test CHANGED
@@ -4,25 +4,155 @@
4
4
 
5
5
 
6
6
 
7
- ```
7
+ **編集**
8
8
 
9
- private void DataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
9
+ ``` C#
10
10
 
11
+ public partial class Form1 : Form
12
+
11
- {
13
+ {
14
+
15
+ private DataTable da = new DataTable();
16
+
17
+ private DataColumn col;
18
+
19
+ private DataRow row;
20
+
21
+ public Form1()
22
+
23
+ {
24
+
25
+ InitializeComponent();
26
+
27
+ }
12
28
 
13
29
 
14
30
 
15
- if(Convert.ToBoolean(DataGridView1.CurrentRow.Cells("チェックボックスの列名").Value))
31
+ private void Form1_Load(object sender, EventArgs e)
16
32
 
17
- {
33
+ {
18
34
 
19
- //現在の列のチェクボックスがtrueの時、現在の行を削除
35
+ DataGridColumn();
20
36
 
21
- dataGridView1.Rows.RemoveAt(DataGridView1.CurrentCell.RowIndex);
37
+ }
22
38
 
23
- }
24
39
 
40
+
41
+ private void DataGridColumn()
42
+
43
+ {
44
+
45
+ col = new DataColumn();
46
+
47
+ col.ColumnName = "チェック";
48
+
49
+ col.DataType = Type.GetType("System.Boolean");
50
+
51
+ da.Columns.Add(col);
52
+
53
+
54
+
55
+ col = new DataColumn();
56
+
57
+ col.ColumnName = "日付・時刻";
58
+
59
+ col.DataType = Type.GetType("System.String");
60
+
61
+ da.Columns.Add(col);
62
+
63
+
64
+
65
+ col = new DataColumn();
66
+
67
+ col.ColumnName = "内容";
68
+
69
+ col.DataType = Type.GetType("System.String");
70
+
71
+ da.Columns.Add(col);
72
+
73
+
74
+
75
+ dataGridView1.DataSource = da;
76
+
77
+ dataGridView1.AllowUserToAddRows = false;
78
+
79
+ dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
80
+
25
- }
81
+ }
82
+
83
+
84
+
85
+ private void 登録_Click(object sender, EventArgs e)
86
+
87
+ {
88
+
89
+ if (textBox1.Text != "")
90
+
91
+ {
92
+
93
+ row = da.NewRow();
94
+
95
+ row["チェック"] = false;
96
+
97
+ row["日付・時刻"] = dateTimePicker1.Value.ToString();
98
+
99
+ row["内容"] = textBox1.Text;
100
+
101
+ da.Rows.Add(row);
102
+
103
+ }
104
+
105
+ else
106
+
107
+ {
108
+
109
+ MessageBox.Show("テキストボックスに入力されていません。");
110
+
111
+ }
112
+
113
+ }
114
+
115
+
116
+
117
+ private void DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
118
+
119
+ {
120
+
121
+
122
+
123
+ }
124
+
125
+
126
+
127
+ private void DataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
128
+
129
+ {
130
+
131
+ if (Convert.ToBoolean(dataGridView1.CurrentRow.Cells["チェック"].Value))
132
+
133
+ {
134
+
135
+ //現在の列のチェクボックスがtrueの時、現在の行を削除
136
+
137
+ dataGridView1.Rows.RemoveAt(dataGridView1.CurrentCell.RowIndex);
138
+
139
+ }
140
+
141
+
142
+
143
+ //チェックボックスをクリック後、すぐに削除するにはこれが必要
144
+
145
+ if (dataGridView1.CurrentCellAddress.X == 0 && dataGridView1.IsCurrentCellDirty)
146
+
147
+ {
148
+
149
+ dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
150
+
151
+ }
152
+
153
+ }
154
+
155
+ }
26
156
 
27
157
  ```
28
158