【C#】DataGridViewに何が表示できるか確認しよう
プロジェクトの準備
Form1にDataGridViewを配置し、AnchorプロパティをTop,Bottom,Left,Rightにして、追加、削除の☑をはずし、Form1をダブルクリックしてForm1_Loadイベントを追加しただけです。
- 列の追加
private void Form1_Load(object sender, EventArgs e) { dataGridView1.Columns.AddRange(new DataGridViewColumn[] { new DataGridViewTextBoxColumn(){ HeaderText = "Column1" }, new DataGridViewComboBoxColumn(){ HeaderText = "Column2" }, new DataGridViewCheckBoxColumn(){ HeaderText = "Column3" }, new DataGridViewImageColumn() { HeaderText = "Column4" } }); }
- 列の追加
private void Form1_Load(object sender, EventArgs e) { //列の幅を自動調整する dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; //行の高さを自動調整する dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; dataGridView1.Columns.AddRange(new DataGridViewColumn[] { new DataGridViewTextBoxColumn(){ HeaderText = "Column1" }, new DataGridViewComboBoxColumn(){ HeaderText = "Column2" }, new DataGridViewCheckBoxColumn(){ HeaderText = "Column3" }, new DataGridViewImageColumn() { HeaderText = "Column4" }, new DataGridViewButtonColumn() { HeaderText = "Column5" }, new DataGridViewLinkColumn(){ HeaderText = "Column6" } }); //セルが押された時のイベントは以下のイベントで拾う dataGridView1.CellContentClick += DataGridView1_CellContentClick; for (int i = 0; i < 5; i++) { AddRow(); } } //Rowを追加する関数 private void AddRow() { var r1 = new DataGridViewRow(); var cc1 = new DataGridViewComboBoxCell(); cc1.Items.Add("Combo1"); cc1.Items.Add("Combo2"); cc1.Items.Add("Combo3"); var bc1 = new DataGridViewButtonCell() { Value = "Button" }; r1.Cells.AddRange(new DataGridViewCell[]{ new DataGridViewTextBoxCell(){ Value="TextBox" }, cc1, new DataGridViewCheckBoxCell(){ Value=true }, new DataGridViewImageCell(){ Value=Image.FromFile(@"C:\Users\BlackTomato\Desktop\Clipboard03.png") }, bc1, new DataGridViewLinkCell(){ Value = "https://heych.hatenablog.com/entry/2020/04/08/005123" } }); dataGridView1.Rows.Add(r1); } private void DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == 4) { MessageBox.Show((e.RowIndex + 1) + "行目のButtonが押されました。"); } else if (e.ColumnIndex == 5) { System.Diagnostics.Process.Start(dataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString()); } }