Winforms 如何编写datagrid完成渲染后运行的代码?

Winforms 如何编写datagrid完成渲染后运行的代码?,winforms,user-controls,datagridview,onload,Winforms,User Controls,Datagridview,Onload,以下更新自定义列“hello”的代码在网格处于表单状态且此代码处于表单加载状态时工作正常。但是,当网格位于usercontrol上且代码位于UserControl1\u Load上时,它不会更新网格(除非我在按钮单击等中添加此代码)-我责怪微软 我正试图找到一种解决方法,在网格渲染完成后运行该代码,因为这样它就可以工作了(例如,当我在button_click事件上编写代码时),有什么想法吗 List<MyClass> all_customers = new List<MyCla

以下更新自定义列“hello”的代码在网格处于表单状态且此代码处于表单加载状态时工作正常。但是,当网格位于usercontrol上且代码位于UserControl1\u 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";
列出所有客户=新列表();
添加(新的MyClass(){MyProperty=2,MyProperty2=“33”});
添加(新的MyClass(){MyProperty=2,MyProperty2=“33”});
添加(新的MyClass(){MyProperty=2,MyProperty2=“33”});
dataGridView1.DataSource=所有客户;
DataGridViewTextBoxColumn c=新的DataGridViewTextBoxColumn();
c、 Name=“你好”;
c、 HeaderText=“你好”;
dataGridView1.Columns.Add(c);
dataGridView1.Rows[0]。单元格[“hello”]。Value=“text2”;

这就成功了。出于某种原因,它以前对我不起作用,但当我从所有复杂的代码行中剥离代码时,它确实起作用了。哦,好吧

试着在你的UC中重写OnLoad(),如@Bismark所述-谢谢你,但它对我不起作用:(
private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
  {
   dataGridView1.Rows[0].Cells["hello"].Value = "pp";

  }