私には同様の質問がたくさんあります。しかし、私はC#には本当に新しいので、これを解決する方法を理解することはできません。子フォームが閉じられた後にDataGridViewを更新します。
メインフォームにDataGridView
があります。新しいレコードを追加するダイアログボックスがあります。ですから、私が望むのは、ダイアログボックスを閉じるときにメインフォームのDataGridView
をリロード/リフレッシュすることです。 (ダイアログボックスでボタンを保存し、ボタンを押してください)。私は子フォームを開くには、このコードを使用し
public void UpdateProductsList()
{
String query = "SELECT * FROM product";
con = new SqlConnection(conString);
con.Open();
SqlDataAdapter sda = new SqlDataAdapter(query, con);
DataTable dt = new DataTable();
sda.Fill(dt);
dataGridView1.DataSource = dt;
}
:
private void AddProductButton_Click(object sender, EventArgs e)
{
Add_product obj = new Add_product();
obj.ShowDialog();
}
だから、私はこの方法を使用してデータをロードし、このようなメインフォーム、上のパブリックメソッドを持っていますSaveボタンをクリックすると、子フォームでこのメソッドを呼び出します。
private void SaveProductButton_Click(object sender, EventArgs e)
{
SaveProduct();
Products products = new Products();
products.UpdateProductsList();
}
ただし、[保存]ボタンをクリックしても機能しません。奇妙なことは、このメソッドをメインフォームのローカルボタンに追加すると、問題なく動作するということです。
また、MessageBox
~UpdateProductsList
を追加しましたが、データがデータベースに挿入されたと確信していますが、DataGridView
には新しいレコードが表示されません。
だからどこが間違っていたのですか?
なぜ、新しいフォーム "Products = new Products();"を作成したいのですか? ?既存のメインフォームの参照をダイアログボックスに送信するだけです。 –
あなたは私にそれをする方法を教えてもらえますか?私はこのOOPとC#でちょっと新しいです。 – TharinduLucky
子フォームを作成して表示するコードを教えてください。 –