我在项目加添加了一个windows窗体“Wfchild”,窗体中拖入了一个datagridview控件Name是dataGridView1,我用下面的循环语句新开出了三个窗体:www1 、www2 、 www3 int ii = 1;//开的窗体名称WWW加 ii
private void button9_Click(object sender, EventArgs e)
{
for (int i = 0; i <= 3; i++)
{
Wfchild _Wfchild = new Wfchild();
_Wfchild.Text = "WWW" + ii++;
_Wfchild.Show();
}
}我想用主窗体的三个按键,向这三个窗口内的datagridview控件添加datatable数据源"dt1"、"dt2"、"dt3",三个datatable。目前我只知道用button向在同一窗体中的datagridview添加数据:dataGridView1.DataSource = dt1;
private void button9_Click(object sender, EventArgs e)
{
for (int i = 0; i <= 3; i++)
{
Wfchild _Wfchild = new Wfchild();
_Wfchild.Text = "WWW" + ii++;
_Wfchild.Show();
}
}我想用主窗体的三个按键,向这三个窗口内的datagridview控件添加datatable数据源"dt1"、"dt2"、"dt3",三个datatable。目前我只知道用button向在同一窗体中的datagridview添加数据:dataGridView1.DataSource = dt1;
解决方案 »
- 今天微软面试的一道算法题。求各位帮忙解决。!
- 多线程 分批执行问题在线等待
- "20101231"这个日期串,如何格式化成"2010-12-31"
- http post上传文件?
- 求教DataGridView高手
- 请教一个UnmanagedType的定义
- 升级ExcelQuicker2.1正式版,欢迎大家下载!!
- 为什么MFC有原代码,VCL有原代码,偏偏.NET类库没有!
- 调用外部exe程序
- media player中怎样改变窗口大小的改变
- 这个技术如何实现:登陆qq,好友桌面提示“***上线了”?我公司要做一个类似的东西,就是登陆的时候,在线的人都可以看到。
- C#怎样点击按钮生成新的tabPage并转到新的tabPage
我给你的建议就是
namespace 测试
{
public partial class Form1 : Form
{
Form2 _Wfchild1 = new Form2();
Form2 _Wfchild2 = new Form2();
Form2 _Wfchild3 = new Form2(); DataTable dt1 = null;
DataTable dt2 = null;
DataTable dt3 = null; public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
_Wfchild1.Text = "WWW1";
_Wfchild1.Show(); _Wfchild2.Text = "WWW2";
_Wfchild2.Show(); _Wfchild3.Text = "WWW3";
_Wfchild3.Show();
} private void button2_Click(object sender, EventArgs e)
{
_Wfchild1.dataGridView1.DataSource = dt1;
_Wfchild2.dataGridView1.DataSource = dt2;
_Wfchild3.dataGridView1.DataSource = dt3;
}
}
}
在子窗体里面声明dataGridView1 为public我知道的只能是这样了
看别人怎么说
f.Owner = this;
f.ShowDialog();
if (f.DialogResult == DialogResult.OK)
{
//重新绑定
}
或委托实现如
public delegate void SetdataHandler(); public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2(new SetdataHandler(Setdata));
frm.Show();
} private void Setdata()
{
Setdata(this.label1);
} private void Setdata(Control control)
{
if (this.Controls.Contains(control))
{
}
}
}
}
Form2代码C# codenamespace WindowsApplication2
{
public partial class Form2 : Form
{
private SetdataHandler m_setdata;
public Form2(SetVisiableHandler setvisible)
{
InitializeComponent();
this.m_setdata = setdata;
}
private void btn_Click(object sender, EventArgs e)
{
if (this.m_setdata != null)
{
this.m_setdata();
}
}
}
主窗体Form1是一个ListBox,单击选中某列时,弹出窗体Form2,Form2中两个控件,一个是TextBox,显示选中的该列的文本,另一个是按钮,点击时将修改后的值回传,且在Form1中修改相应的列的文本,同时Form2关闭。Form2:
C#代码
//定义一个需要string类型参数的委托
public delegate void MyDelegate(string text);
public partial class Form2 :Form1
{
//定义该委托的事件
public event MyDelegate MyEvent;
public Form2(string text)
{
InitializeComponent();
this.textBox1.Text = text;
}
private void btnChange_Click(object sender, EventArgs e)
{
//触发事件,并将修改后的文本回传
MyEvent(this.textBox1.Text);
this.Close();
}
}
Form1:
C#代码
public partial class Form1 :Form
{
public int index = 0;
public string text = null;
public Form1()
{
InitializeComponent();
}
private void listBox1_SelectedIndexChanged(object sender, EventArgse)
{
if (this.listBox1.SelectedItem != null)
{
text = this.listBox1.SelectedItem.ToString();
index = this.listBox1.SelectedIndex;
Form2 form2 = new Form2(text);
//注册form2_MyEvent方法的MyEvent事件
form2.MyEvent += new MyDelegate(form2_MyEvent);
form2.Show();
}
}
//处理
void form2_MyEvent(string text)
{
this.listBox1.Items.RemoveAt(index);
this.listBox1.Items.Insert(index, text);
}
}