我有2个表单,第一个form4是dataGridView,包含来自数据库的信息,当我单击“新建”按钮时,form5显示了一个公式,我应该填写,然后单击“添加”按钮,最后,结果我得到应该出现在Form4的datagridView中。
那可能吗?
这是我的代码:

private void button2_Click(object sender, EventArgs e)
{
    SqlConnection connection = new SqlConnection(connectionString);
    connection.Open();
    SqlCommand sql = new SqlCommand("insert into journal values('" + textBox1.Text + "','" + textBox2.Text + "','" + comboBox2.SelectedItem.ToString() + "','" + comboBox1.SelectedItem.ToString() + "','" + checkBox1.Checked.ToString()+"','"+checkBox2.Checked.ToString()+"');", connection);
    int o = sql.ExecuteNonQuery();
    MessageBox.Show(o + " Le Fichier journal a ?t? ajout? avec succ?s");
    connection.Close();
    textBox1.Text = "";
    textBox2.Text = "";
    if(textBox1.Text ==" ")
    {
        MessageBox.Show("La saisie du code Journal est obligatoire!!");
    }
    affich();             
}
 
private void affich()
{
    try
    {
        pat = connectionString;
        req = "SELECT * FROM journal";
        con = new SqlConnection(pat);
        con.Open();
        dr = new SqlDataAdapter(req, con);
        dr.Fill(ds, "journal");
        Form4 Form4 = new Form4();//ceci va creer une nouvelle instance je ne veux pas avoir une nouvelleFen?te
        Form4.journalDataGridView.DataSource = ds.Tables["journal"];
        Form4.Show();
    }
    catch (Exception e) { MessageBox.Show("Base de donn?es non trouv?e", e.Message); }
}        
        


和2种形式:


感谢帮助

最佳答案

要求:Form5中的按钮应将结果添加到DataGridView中存在的Form4中,而无需创建Form4的新实例

Form4中,将ModifiersjournalDataGridView属性更改为Public

需要进行以下更改:

public partial class Form5 : Form
{
    Form4 form4;

    public Form5(Form4 f4)
    {
        InitializeComponent();
        this.form4 = f4;
    }

    private void button2_Click(object sender, EventArgs e)
    {
        ...
        ...
        affich();
    }

    private void affich()
    {
       try
       {
           pat = connectionString;
           req = "SELECT * FROM journal";
           con = new SqlConnection(pat);
           con.Open();
           dr = new SqlDataAdapter(req, con);
           dr.Fill(ds, "journal");
           form4.journalDataGridView.DataSource = ds.Tables["journal"];
       }
       catch (Exception e) {
           MessageBox.Show("Base de donn?es non trouv?e", e.Message);
       }
    }
}


如何从Form5创建Form4实例:

在Form4.cs内部:

public partial class Form4 : Form
{
    public Form4()
    {
       InitializeComponent();
    }

    private void newButton_Click(object sender, EventArgs e)
    {
         Form5 form5 = new Form5(this);
         form5.Show();
    }
    ...
 }


或从任何其他父表格:

//must have valid Form4 objForm4
Form5 form5 = new Form5(objForm4);

09-25 10:28