概要
よく使うdatagridviewの設定
動作確認環境
Windows11
.NET Framework 4.7.2
詳細
データソースの準備
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
public DS_List ds_List = new DS_List(); public class DS_Settings { public string item { get; set; } public string presentValue { get; set; } public string newValue { get; set; } } public class DS_List { public List<DS_Settings> Data { get; } public DS_List() { Data = new List<DS_Settings> { new DS_Settings { item="AAA", presentValue="", newValue=""}, new DS_Settings { item="BBB", presentValue="", newValue=""}, new DS_Settings { item="CCC", presentValue="", newValue=""} }; } } |
データグリッドビューにデータソースをバインド
1 2 3 |
// データソースをバインド dataGridView1.DataSource = ds_List.Data; dataGridViewSettings(dataGridView1); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
public void dataGridViewSettings(DataGridView dgv) { // カラム名を指定 dgv.Columns[0].HeaderText = "項目"; dgv.Columns[1].HeaderText = "現在値"; dgv.Columns[2].HeaderText = "更新値"; // データグリッドビュー設定 //列の幅を自動調整する(列幅は、ヘッダーセルを含む列内のすべてのセルの内容で調整される。) dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; //セルの内容に合わせて、行の高さが自動的に調節されるようにする dgv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; //"Column1"列のセルのテキストを折り返して表示する dgv.Columns[0].DefaultCellStyle.WrapMode = DataGridViewTriState.True; dgv.Columns[0].ReadOnly = true; dgv.Columns[1].ReadOnly = true; dgv.RowHeadersWidth = 43; dgv.Columns[0].Width = 200; dgv.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing; } |
データグリッドビューのセルをCtrl+Cでコピー、Ctrl+Vで貼り付けできるようにする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
// ver 0.0.1 private void dataGridView1_KeyDown(object sender, KeyEventArgs e) { try { if (e.Control && e.KeyCode == Keys.V) { DataGridView dgv = (DataGridView)sender; // クリップボードの文字列を取得 string s = Clipboard.GetText(); //複数行選択時対応 List<string> tokens = s.Split(new[] { "\r\n", "\n", "\r" }, StringSplitOptions.None).ToList(); // 選択セルに反映 int row = dgv.CurrentCell.RowIndex; int col = dgv.CurrentCell.ColumnIndex; int rowMax = dgv.Rows.Count; foreach (var str in tokens) { dgv[col, row].Value = str; row = row + 1; if (row >= rowMax) break; } } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { } } |
コメント