0

ASP の経験はありますが、WinForms はまったく初めてです。私がやろうとしているのはこれです: SQL データベースにリンクされているバインディング ソースにリンクされている Form1 に CheckedListBox があります。「追加」ボタンをクリックするとポップアップする別のフォーム(Form2)があり、レコードを追加できます。私が望んでいるのは、フォーム 2 にレコードを追加するとすぐに、フォーム 1 の CheckedListBox も更新されることです。DataSource および DisplayMember プロパティを試しましたが、うまくいかないようです。誰かが私を正しい方向に向けることができますか?

これを行うためのより良い方法を知っている人がいれば、私も耳を傾けます。ありがとう。

4

3 に答える 3

0

Form2 から Form1 にアクセスできますか? 可能であれば、最も簡単な方法は、チェックボックスをチェックするボタンが押されたときに行を追加することです

何かのようなものform1.checkboxName.Checked = true;

コードの一部を見せていただければ助かります:)

于 2011-06-16T14:03:55.393 に答える
0

以前の回答済み投稿をご覧ください。

最初のフォームからパラメーターを指定して 2 番目のフォームを呼び出すように指示しました...その後、2 番目のフォームはそれを直接利用できます。これを行うには、最初のフォーム自体を渡して、ほとんど何でも実行させます... しかし、最も単純なフォームでは、フォームを保持できます。次に、2 番目のフォームのクリック / 追加 / 保存などで、最初のフォームを参照して直接 (またはパブリック プロパティの getter/setter を介して間接的に) 設定します。

于 2011-06-16T14:09:53.157 に答える
0

私は自分の質問に対する答えを見つけました。form1ですべてを処理しました。refreshData というメソッドを作成し、アイコンをクリックして form2 をポップアップしたときに、form2 の Dialog Result が OK になるのを待ってから、refreshData メソッドを呼び出しました。これが他の誰かに役立つことを願っています:

private void pictureBox1_Click(object sender, EventArgs e)
    {
        form2 box = new form2();
        using (box)
        {
            box.ShowDialog();
            if (box.DialogResult == DialogResult.OK)
            {
                refreshData();
            }
            box.Dispose();
        }
    }
    private void refreshData()
{
ADODB.Recordset rs = new ADODB.Recordset();
           ADODB.Connection adoCon = new ADODB.Connection();
           adoCon.Open("put Connection String Here");
           rs.Open("Put Select query Here",adoCon,ADODB.CursorTypeEnum.adOpenStatic,ADODB.LockTypeEnum.adLockOptimistic);
           DataSet myDS = new DataSet();
           OleDbDataAdapter da = new OleDbDataAdapter();
           da.Fill(myDS, rs,"MyTable");
           chkList1.DataSource = null;
           chkList1.DataSource = myDS.Tables[0];
           chkList1.DisplayMember = "Put Field to Display in CheckList here";
}
于 2011-06-17T18:01:08.847 に答える