现在要做的这个程序要实现数据库操作的基本功能,“增删查改”。
有一个主画面,画面上所有记录在datagrid中显示,在增加记录的时候,在主画面上弹出一个新的对话框,填好数据后写入数据库,然后“返回”按钮返回主画面,现在希望在返回到主画面的时候自动更新datagrid中的数据,但是我试了多次,没有找到“主画面获得焦点”这个时间,所以也没有能把数据更新及时的显示出来。
请问各位高手,该如何实现呢?
有一个主画面,画面上所有记录在datagrid中显示,在增加记录的时候,在主画面上弹出一个新的对话框,填好数据后写入数据库,然后“返回”按钮返回主画面,现在希望在返回到主画面的时候自动更新datagrid中的数据,但是我试了多次,没有找到“主画面获得焦点”这个时间,所以也没有能把数据更新及时的显示出来。
请问各位高手,该如何实现呢?
if (f.ShowDialog(this)==DialogResult.OK)
{
//code here...
}这样当你的子对话框关闭后执行你的从数据库重新取数据的代码就可以了。
然后再对显示datagrid控件DataBind()一下就行了
form2 f = new form2;
f.Show();
这时候你可以把查询的方法写到这句代码后面就行了,也就是每次打开窗体,不管操作没有都会执行这个方法!
因为窗体没有关闭,就不会执行下面的语句,只要打开的窗体一关闭,就会执行Show()下面的方法。OK啦不知道LZ是不是这个意思哦
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//启动增加信息窗体
Form2 f2 = new Form2();
f2.form1 = this;//***启动增加信息的窗体时,将增加窗体中定义的主窗体类指定到现在这个主窗体*******
f2.Show();
}
//刷新主窗体的Datagridview的方法
public void UpdateDategidview(string info)//***该方法的参数是增加信息窗体传入的新信息
{
//将传入的增加或者删除信息进行数据库处理,并返回新的Dataset,***这个过程我就不写了
this.dataGridView1.DataSource=Dataset.Table[0];//重新绑定DataGridView的数据源
}
}//写增加信息的窗体
public partial class Form2 : Form
{
public Form1 form1;// *****在增加信息的窗体中定义一个主窗体类*****
public Form2()
{
InitializeComponent();
}
//返回按钮的触发事件
private void button1_Click(object sender, EventArgs e)
{
form1.UpdateDategidview(this.textBox1.Text);//在关闭增加信息的窗体前,先调用主窗体的刷新方法,并且把增加的信息作为参数传递到主窗体刷新程序中
this.close();
}
}以上方法你在按返回按钮后就会根据你的新信息来更新主窗体的DataGridView