0

カスタム列「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";
4

1 に答える 1

0
private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
  {
   dataGridView1.Rows[0].Cells["hello"].Value = "pp";

  }

これでうまくいきました。以前は何らかの理由で機能しませんでしたが、すべての複雑なコード行からコードを削除すると、機能しました。しかたがない

于 2012-08-05T20:09:13.743 に答える