c#总怎样在一个窗体让另一个窗体的COMBOX更新
发布网友
发布时间:2024-04-02 08:50
我来回答
共5个回答
热心网友
时间:2024-04-02 11:20
你只要在Form2中更新你绑定的那个DataTable,既可以让Form1上的内容自动更新了。
前提,
1、你要把Form1中绑定的DataTable传到Form2中。不用做特别的处理。
2、你是使用DisplayMember和ValueMember给ComboBox绑定的数据。
你可以在Form2中设一个属性,把你绑定的DataTable传给这个属性就可以了。然后当你的Form2改完数据后,用新的数据填充一下这个DataTable就行了。
下面是form1和form2的代码。
整个工程的压缩包在
http://www.toolib.cn/sample/WindowsApplication2.zip
该链接保证5天之内可以下载。五月一日开始可能就下不了了。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication2
{
public partial class Form1 : Form
{
private DataTable tempDT;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
tempDT = new DataTable("TempData");
tempDT.Columns.Add("ForDisplay", typeof(string));
tempDT.Columns.Add("ForValue", typeof(string));
tempDT.Rows.Add(new string[] { "Data1", "Value1" });
tempDT.Rows.Add(new string[] { "Data2", "Value2" });
tempDT.Rows.Add(new string[] { "Data3", "Value3" });
tempDT.Rows.Add(new string[] { "Data4", "Value4" });
comboBox1.DataSource = tempDT;
comboBox1.DisplayMember = "ForDisplay";
comboBox1.ValueMember = "ForValue";
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.DataSource = tempDT;
frm.ShowDialog();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication2
{
public partial class Form2 : Form
{
private DataTable form2DT;
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
form2DT.Rows.Add(new string[] { textBox1.Text, textBox2.Text });
this.Close();
}
public DataTable DataSource
{
get
{
return form2DT;
}
set
{
form2DT = value;
}
}
}
}
热心网友
时间:2024-04-02 11:26
LS的说的差不多了..你可以在每次添加后都让ombox重新绑一下
BT点的扔个timer 无限刷......
热心网友
时间:2024-04-02 11:20
可以这样:
在form1里面写一个代理事件, 用来更新combox的内容
在form2里面的数据库内容显示的函数里加上对form1的事件调用
热心网友
时间:2024-04-02 11:19
1、简单点的是直接把form1的combobox公开出来,设置成public
2、稍好点的是把form1的combobox作为一个属性公开出来
3、最好的方法是委托
热心网友
时间:2024-04-02 11:23
form1 ff=new form();
ff.controls["combox1"].item.add();
ff.show();