1

こんにちは私はc#の学生であり、winformで作業しています。ここでdatagridviewを新しい値で更新するのに問題があります。datagridviewを持っているメインフォームがあります。datagridviewのデータはコードで埋められています。

メインフォームのボタンから呼び出される2番目のフォームがshowdialogあり、メインフォームが後ろに実行されており、2番目のフォームに送信ボタンのボタンがもう1つあります。2番目のフォームにはいくつかのコントロールがあり、データはデータベーステーブルに挿入されます。このテーブルは、メインフォームのdatagridviewに接続されているため、2番目のフォームを開いてデータを入力し、送信ボタンを押すと、メインフォームが表示さthis.hide();れたら、送信されたデータは検索したdatagridviewにあるはずですが、データソースを変更するとdatagridviewが新しいデータで更新されることがわかったので、これを試しました

MAINSOFTWARE ms = new MAINSOFTWARE();
                ms.dataGridView1.DataSource = null;
                ms.dataGridView1.DataSource = ms.bindingSource1;
                this.Hide();

しかし、新しく送信されたデータでグリッドビューを更新していないので、更新する方法はありますか?

4

1 に答える 1

2

元のインスタンスを処理することになっているときに、 MainForm の新しいインスタンスを作成しています

Second Form でプロパティを作成しDatatable、閉じたときにMainForm にDatatableバインドすることができます。DataGridView

このコードは、ボタン クリック イベント ハンドラの MainForm にある必要があります。

SecondForm.ShowDialog();

//After closing the SecondForm

this.DataGridView1.DataSource = SecondForm.MyDatatable();

SecondForm で DataTable プロパティを宣言します。

private DataTable _MyDatatable = new DataTable ();

    public DataTable  MyDatatable
    {
        get {
            return _MyDatatable ; 
        }
        set { 
            _MyDatatable = value; 
        }
    }
于 2013-01-18T15:10:40.837 に答える