我有使用ASP的经验,但对WinForms来说却是全新的。我想要做的是:我在Form1上有一个CheckedListBox,它链接到一个链接到SQL数据库的绑定源。我有另一个表单(Form2),点击“添加”按钮弹出,然后他们可以添加一个记录。我想要发生的是,只要他们在表单2中添加记录,Form1中的CheckedListBox也会更新。我已经尝试过DataSource和DisplayMember属性,但这似乎没有办法。有人能指出我正确的方向吗?
如果有人知道更好的方法,我也都是耳朵。感谢。
答案 0 :(得分:0)
您可以从Form2访问Form1吗?如果您可以最简单的方法是在按下的按钮上添加一行来检查复选框
类似于form1.checkboxName.Checked = true;
如果您展示了一些代码,它会有所帮助:)
答案 1 :(得分:0)
我指示此人使用第一个表格中的参数调用第二个表单...然后第二个表单可以直接使用它。你可以通过传入第一个表单并让它做几乎任何事情来做到这一点......但是以最简单的形式,允许你保留表单。然后,在第二个表单的click / add / save /中,引用第一个表单并直接设置(或通过公共属性getter / setter间接设置)。
答案 2 :(得分: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";
}