form1上有DataSet,DataGridView 如果在DataGridView双击某一行,则在另一Form上显示明细的内容,部份代码如下:
private void Form2_Load(object sender, EventArgs e)
{
Form1 frm1=new Form1();
DataTable adt=frm1.frontDeskDataSet.Tables[0];
//textBox1.Text = adt.Rows[0][1].ToString(); //运行到此句出错
MessageBox.Show(adt.Rows.Count.ToString()); //检测到行数为0
}
在form1中的DateSet的Modifiers已置为public
请问应该如何写?
private void Form2_Load(object sender, EventArgs e)
{
Form1 frm1=new Form1();
DataTable adt=frm1.frontDeskDataSet.Tables[0];
//textBox1.Text = adt.Rows[0][1].ToString(); //运行到此句出错
MessageBox.Show(adt.Rows.Count.ToString()); //检测到行数为0
}
在form1中的DateSet的Modifiers已置为public
请问应该如何写?
解决方案 »
- winform如何上传图片到mysql数据库
- Dictionary 或者 arraylist
- 如果写个程序将数据库数据导入记事本?
- xml文件访问和存取出现IE死掉了。网页打不开。
- 一个c#安装项目的问题,在线等急
- 关于iframe的控制,在线等结帖
- 大家好!~ 小弟自己建了一个讨论c# 和 asp.net的群 感谢大家来参与!!~~
- WINFORM:判断文件夹下是否存在一文件:AA.bmp, 判断语句怎么写??谢谢!!!!
- 用DATAGRID的绑定列能传一个ID给下一下FROM吗?
- 新新手的菜菜问题。
- Winfrom ASCII验证
- c# web上怎么制作一个视频播放器的可拖拉的进度条??很急啊,望大狭们指教啊??
仅供参考 。看楼下 有没有好的办法
form2
void form_load(....)
{
MessageBox.Show(ShowText);
}form1
Form form2=new Form()
form2.ShowText="your value";
form1.show();
Form1 frm1=new Form1();
改成Form1 frm1 = (Form1)(Application.OpenForms["Form1"]);
if(frm1 != null)
{
DataTable adt=frm1.frontDeskDataSet.Tables[0];
//textBox1.Text = adt.Rows[0][1].ToString(); //运行到此句出错
MessageBox.Show(adt.Rows.Count.ToS…}试一下
不是NULL,则看看adt有几个列字段,这是简单数据传递问题,
方法可以参考1楼,
Form1 frm1=new Form1(); 这句有问题
这样写是新new出来一个Form1而不是抓的已经存在的那个Form1
换成
Form1 frm1 = (Form1)(Application.OpenForms["Form1"]);或者在Form2构造函数里接值
在new Form2的时候就把值传过去
DataGridView dgv = null;
public Form1(DataGridView dgv1)
{
dgv = dgv1;
}
private void Form2_Load(object sender, EventArgs e)
{
DataTable adt=dgv.DataSource as DataTable;
//textBox1.Text = adt.Rows[0][1].ToString(); //运行到此句出错
MessageBox.Show(adt.Rows.Count.ToString()); //检测到行数为0
}
private void Form2_Load(object sender, EventArgs e)
{
// Form1 frm1=new Form1();
Form1 frm1 = (Form1)(Application.OpenForms["Form1"]); //6楼的写法
DataTable adt=frm1.frontDeskDataSet.Tables[0];
textBox1.Text = adt.Rows[RowNo]["RecordedDate"].ToString(); //其中的RowNo是在Form2生成的时候通过构造函数传进来的
MessageBox.Show(adt.Rows.Count.ToString());
MessageBox.Show(adt.TableName.ToString());
}
DataGridView公开publicForm2 f2=new Form2(this.dataGridView1);
f2.Show();
public Form2(DataGridView dgv1)
{
dgv = dgv1;
}
private void Form2_Load(object sender, EventArgs e)
{
DataTable adt=dgv.DataSource as DataTable;
//textBox1.Text = adt.Rows[0][1].ToString(); //运行到此句出错
MessageBox.Show(adt.Rows.Count.ToString()); //检测到行数为0
}
改一下