【发布时间】:2013-07-02 23:12:22
【问题描述】:
我在form1 中有dataGridView1,但为了插入它,我使用form2,它有我试图设置的保存按钮(提供插入datagridview1) - refresh 或@987654325 @ 所以每当我想显示所有记录时,我都不需要form1 中的任何刷新按钮。有没有办法做到这一点?
非常感谢您的宝贵时间。
【问题讨论】:
标签: c# sql select datagridview refresh
我在form1 中有dataGridView1,但为了插入它,我使用form2,它有我试图设置的保存按钮(提供插入datagridview1) - refresh 或@987654325 @ 所以每当我想显示所有记录时,我都不需要form1 中的任何刷新按钮。有没有办法做到这一点?
非常感谢您的宝贵时间。
【问题讨论】:
标签: c# sql select datagridview refresh
您可以使用Form.DialogResult 来实现此目的。
在您的插入表单中,将数据保存到数据库后:
DbContext.SaveChanges();
MessageBox.Show("Successfully saved.");
DialogResult = System.Windows.Forms.DialogResult.Yes;
并且在您的网格形式中:
Frm_NewData newData = new Frm_NewData();
if (newData.ShowDialog() == System.Windows.Forms.DialogResult.Yes)
{
RefreshGrid();
}
【讨论】:
DbContext.SaveChanges(); 行替换为您保存到数据库的代码块。 :-)
你可以使用委托..例如:
表格1:
private void btnForm1_Click(object sender, System.EventArgs e)
{
// Create an instance of form 2
Form2 form2 = new Form2();
// Create an instance of the delegate
form2.passControl = new Form2.PassControl(PassData);
// Show form 2
form2.Show();
}
private void PassData(object sender)
{
// Set de text of the textbox to the value of the textbox of form 2
txtForm1.Text = ((TextBox)sender).Text;
}
表格2:
public class Form2 : System.Windows.Forms.Form
{
// Define delegate
public delegate void PassControl(object sender);
// Create instance (null)
public PassControl passControl;
private void btnForm2_Click(object sender, System.EventArgs e)
{
if (passControl != null)
{
passControl(txtForm2);
{
this.Hide();
}
}
我希望这会有所帮助..
【讨论】: