DataGridView我遇到了一个小问题。
我有两种形式,在一种形式中,数据将由DataGridView填充。
当我们点击gridview的列标题时,将打开另一个表格,其中包含相应的列值。
我已经对form2中的数据进行了一些操作,所以在关闭form2之前我想用这些细节更新form1 gridview ......
我在form1中看到了一些像eventhandler附件这样的细节,但我找不到确切的答案。
答案 0 :(得分:1)
表单2代码
public event EventHandler<UpdatedEventArgs> updateEvent;
public class UpdatedEventArgs : EventArgs
{
public string SomeVal { get; set; } // create custom event arg for your need
}
protected virtual void OnFirstUpdateEvent(UpdatedEventArgs e)
{
if (updateEvent != null)
updateEvent(this, e);
}
private void button1_Click(object sender, EventArgs e)
{
UpdatedEventArgs eventData = new UpdatedEventArgs();
eventData.SomeVal = "test"; // set update event arguments, according to your need
OnFirstUpdateEvent(eventData);
}
public Form2()
{
InitializeComponent();
}
表单1代码
public Form1()
{
InitializeComponent();
Form2 form2 = new Form2();
form2.updateEvent += new EventHandler<Form2.UpdatedEventArgs>(form2_updateEvent); // create event handler to update form 1 from form 2
form2.Show();
}
void form2_updateEvent(object sender, Form2.UpdatedEventArgs e)
{
if (e != null && e.SomeVal != null)
{
// Do the update on Form 1
// depend on your event arguments update the grid
//MessageBox.Show(e.SomeVal);
}
}
答案 1 :(得分:0)
通过使用DataGrid,您最有可能像模型一样使用DataTable。我会说像DataTable的参数传递给form2并操纵form2中的SAME DataTable对象,因此对其行和提交的更改将自动反映在form1上。