0

我有 ASP 的经验,但对 WinForms 完全陌生。我要做的是:我在 Form1 上有一个 CheckedListBox,它链接到一个绑定源,该绑定源链接到一个 SQL 数据库。我有另一个表单(Form2),在单击“添加”按钮时会弹出,然后他们可以添加记录。我希望他们在 Form 2 中添加记录后,Form1 中的 CheckedListBox 也会更新。我已经尝试过 DataSource 和 DisplayMember 属性,但这似乎不起作用。有人可以指出我正确的方向吗?

如果有人知道更好的方法来做到这一点,我也全神贯注。谢谢。

4

3 回答 3

0

您可以从 Form2 访问 Form1 吗?如果可以,最简单的方法就是在按下的按钮中添加一行以选中复选框

就像是form1.checkboxName.Checked = true;

如果您显示一些代码会有所帮助:)

于 2011-06-16T14:03:55.393 回答
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 回答
0

看看以前回答的帖子

我指示该人使用第一个表单的参数调用第二个表单......然后第二个表单可以直接使用它。您可以通过传入第一个表单本身并让它做几乎任何事情来做到这一点......但是以最简单的形式,允许您保留表单。然后,在第二个表单的 click/add/save/whatever 中,引用第一个表单并直接设置它(或通过公共属性 getter/setter 间接设置)。

于 2011-06-16T14:09:53.157 回答