私の親フォームでは、次のようDataTable
に as DataSource
which を使用してアイテムが入力されたコンボボックスがあります。
sourceTypes = myDataBase.SourceType.ToList<SourceTypes>();
DataTable dt = new DataTable();
DataColumn dc1 = new DataColumn("Name");
DataColumn dc2 = new DataColumn("ID");
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
foreach (SourceType sourceType in sourceTypes)
{
string sourceTypeName = sourceType.sourceTypeName;
string ID = sourceType.sourceTypeID.ToString();
dt.Rows.Add(sourceTypeName, ID);
}
comboBox3.DataSource = dt;
comboBox3.ValueMember = "ID";
comboBox3.DisplayMember = "Name";
親フォームから、新しいレコードを追加する子フォームを呼び出していmyDataBase
ます。子フォームが閉じられるとすぐに、この新しく追加されたレコードが親のフォームのコンボボックスに表示されるようにします。だから私は、コンボボックスをリフレッシュする私のchildFrmからこのようなものを呼び出すことを考えていました.
private void FrmChild_FormClosed(object sender, FormClosedEventArgs e)
{
FrmParent.refresh();
}
親フォームに静的更新メソッドが必要になりましたが、実際には機能しません。どうすればそれを成し遂げることができますか?乾杯
編集:子フォームはここで開かれます:
private void button7_Click(object sender, EventArgs e)
{
FrmChild frmChild = new FrmChild();
frmChild.ShowDialog();
frmChild.Dispose();
}
EDIT2:私はこのように(静的メソッドなしで)試しましたが、うまくいきませんでした
私の子フォームで:
private void FrmChild_FormClosed(object sender, FormClosedEventArgs e)
{
FrmParent frmParent = new FrmParent();
frmParent.refresh();
}
私の親フォームでは、メソッドを更新します (新しいレコードが myDataBase に追加された後)。
sourceTypes = myDataBase.SourceType.ToList<SourceTypes>();
DataTable dt = new DataTable();
DataColumn dc1 = new DataColumn("Name");
DataColumn dc2 = new DataColumn("ID");
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
foreach (SourceType sourceType in sourceTypes)
{
string sourceTypeName = sourceType.sourceTypeName;
string ID = sourceType.sourceTypeID.ToString();
dt.Rows.Add(sourceTypeName, ID);
}
comboBox3.DataSource = dt;
comboBox3.ValueMember = "ID";
comboBox3.DisplayMember = "Name";
このように試してみましたが、コンボボックスはまだ更新されません。