WinForm アプリの dataGridView に動的にボタンを張り付けそのボタンテキストを1行ごとに任意で設定したいのですが、
どのようにしたらできますか?
C#
1 DataTable dt = new DataTable(); 2 DataColumn column; 3 DataRow row; 4 5 for (int k = 0; k < table.Length; ++k) 6 { 7 column = new DataColumn(); 8 column.DataType = Type.GetType(attrib); 9 column.ColumnName = table[k]; 10 dt.Columns.Add(column); 11 } 12 13 for (int k = 0; k < itak.Count; ++k) 14 { 15 row = dt.NewRow(); 16 17 row[0] = itak[k].id; 18 row[1] = itak[k].Kind; 19 row[2] = itak[k].Hyohon; 20 21 22 dt.Rows.Add(row); 23 } 24 dataGridView1.DataSource = dt; 25 26 // 修正ボタン追加 27 DataGridViewButtonColumn column3 = new DataGridViewButtonColumn(); 28 //列の名前を設定 29 column3.Name = "修正"; 30 //全てのボタンに"修正"と表示する 31 column3.UseColumnTextForButtonValue = true; 32 column3.Text = "修正"; 33 column3.Width = 60; 34 column3.DefaultCellStyle.Font = new Font(dataGridView1.Font.FontFamily, 8, FontStyle.Regular); 35 //DataGridViewに追加する 36 dataGridView1.Columns.Add(column3); 37 38 // 修正ボタンを itak[i].Itaku の値で 〇 / × に変える 39 for(int i=0; i < itak.Count; ++i) 40 { 41 if (itak[i].Itaku == true) 42 dataGridView1[9, i].Value = "〇"; 43 else 44 dataGridView1[9, i].Value = "×"; 45 }
dataGridView1[9, i].Value = "〇"; では無理だろうって思いましたが・・・(^_^)
上記のコードでは、列に一括でセットしていますが、1行ごとにループでぶん回す方法などありますでしょうか?
また、ほかの方法でも?ありますか?
Windows10 VS2015 C#
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/21 22:42