获取form中datagridview的行数

lhxl543449065 2011-11-11 01:52:54
form1里面定义了一个datagridview 里面有n行数据
form1里面有个方法private void rowsnum(){messagebox.show(datagridview1.rows.count.tostring());}
from2 里面有一个按钮
按钮的点击事件里调用rosnum()但是显示的行数是0 而如果在form1里面调用这个方法显示的行数又是正确的
我的问题是怎么才能在form2里面读取到form1的行数


private void button1_Click(object sender, EventArgs e)
{
Form1 frm = new Form1();
int flag=frm.Insert();
if (flag == 1)
{ this.Close(); }

form1里德方法
public int Insert()
{
for (int k = 0; k < dataGridView1.Rows.Count; k++)
{ }
}

注意 for (int k = 0; k < dataGridView1.Rows.Count; k++)
后面没有执行 因为调试得知dataGridView1.Rows.Count始终为0
...全文
191 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
socg 2011-11-11
  • 打赏
  • 举报
回复
晕,搞半天你调用的不是同一个窗口的rowsnum
qkhhimkfrgw 2011-11-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lhxl543449065 的回复:]
补充 :有人说是我在form2里new form1后 新声明出来的就是一个新的对象,和原来的form1是两个不同的东西。
[/Quote]
同学,这肯定不是同一个东西啦,如果你想要原来的form1,那就把form1当参数往form2的构造方法里传,这样再用个变量Form1 frm ;
public class frm2:Form2
{
private Form1 frm;//加个变量用来接收Form1
public frm2(Form1 frm)
{
this.frm=frm;// 用变量frm接收Form1实例的引用

}
private void button1_Click(object sender, EventArgs e)
{
int flag=this.frm.Insert();
if (flag == 1)
{ this.Close(); }


}
lhxl543449065 2011-11-11
  • 打赏
  • 举报
回复
谢谢 大家 问题已经搞定了 还是很谢谢你们了 结贴给分 最后一楼是正解
xiaxueducun 2011-11-11
  • 打赏
  • 举报
回复
我之前也遇见过类似的问题
这样就解决了
在form2里
Form1 mainform;
public Form2(Form1 mainf)
{
InitializeComponent();
this.mainform = mainf;
}
form1里弹出form2时这样写:
Form2.show(this);
lhxl543449065 2011-11-11
  • 打赏
  • 举报
回复
但是怎么做呢
OrangeEvan 2011-11-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lhxl543449065 的回复:]

补充 :有人说是我在form2里new form1后 新声明出来的就是一个新的对象,和原来的form1是两个不同的东西。
[/Quote]

人家说的是对,你的要把前面已经操作过表格的form传入form2中,然后调用行数才对。应该对象不同了,对应的内存地址肯定不同了。
lhxl543449065 2011-11-11
  • 打赏
  • 举报
回复
补充 :有人说是我在form2里new form1后 新声明出来的就是一个新的对象,和原来的form1是两个不同的东西。
qkhhimkfrgw 2011-11-11
  • 打赏
  • 举报
回复
Form1 frm = new Form1();确定在初始化frm的时候有给frm的datagridview1加数据么,没加的话,你new个Form1出来,datagridview1也只会是空的。
csdn_aspnet 2011-11-11
  • 打赏
  • 举报
回复
new f1实例后 你可以通过f1找到f1里的datagrideview直接.rows.count.tostring()
socg 2011-11-11
  • 打赏
  • 举报
回复
不应该啊,应该都能得到行数的,是不是其它地方错了

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧