カスタム列「hello」を更新する次のコードは、グリッドがフォームにあり、このコードが form_load にある場合に完全に機能します。しかし、グリッドがユーザーコントロール上にあり、コードが UserControl1_Load 上にある場合、グリッドは更新されません (このコードをボタンクリックなどに追加しない限り) - 私はマイクロソフトを責めます!
グリッドのレンダリングが終了した後にそのコードを実行するための回避策を見つけようとしています。これは、それが機能するためです (たとえば、button_click イベントに書き込むとき)、何かアイデアはありますか?
List<MyClass> all_customers = new List<MyClass>();
all_customers.Add(new MyClass() { MyProperty = 2, MyProperty2 = "33" });
all_customers.Add(new MyClass() { MyProperty = 2, MyProperty2 = "33" });
all_customers.Add(new MyClass() { MyProperty = 2, MyProperty2 = "33" });
dataGridView1.DataSource = all_customers;
DataGridViewTextBoxColumn c = new DataGridViewTextBoxColumn();
c.Name = "hello";
c.HeaderText = "hello";
dataGridView1.Columns.Add(c);
dataGridView1.Rows[0].Cells["hello"].Value = "text2";