datagridview行数问题

寂静的神经 2010-03-19 03:31:28
winform程序 我想实现的是在form1中有个datagridview dtgw1,form2中有个datagridview dtgw2.点击form1中按钮打开form2,然后双击form2窗体上dtgw2中的某一行,将这一行加到dtgw1中,然后如果再点击dtgw2中的某行,就将该行追加到dtgw1中.
就是追加这的问题,我想在form2中获取form1中的dtgw1的行数,但每次获取的都是1.这是为什么啊?

int j = fzlc.dataGridView2.Rows.Count;
for (int i = 0; i < 13; i++)
{
fzlc.dataGridView2.Rows[j].Cells[i].Value = ds.Tables[0].Rows[0][i].ToString();
this.Close();
}
...全文
370 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Code従業員 2010-03-19
  • 打赏
  • 举报
回复
帮你整理下思路吧,以前刚出道时候的第一个项目就碰到;
1、合同窗体,相干信息,车辆列表(dataGridView)
2、窗体二,弹出车辆帮助菜单,窗体类有返回值,在点击提交按钮或双击返回值(一般是车辆ID),推荐用ShowDialog()
3、在合同窗体添加该ID的车辆,完成任务。

你的问题其实就是越权,子窗体向父窗体添加数据,从理念上有点欠规范,当然要用委托那也可以。

zhao_zps 2010-03-19
  • 打赏
  • 举报
回复
验证是否选中行
datagridview1.SelectedRows.Count>0

设置行标题列
dataGridView1.Rows[i].HeaderCell.Value = "第一行";
隐藏首行
dataGridView1.ColumnHeadersVisible = false;
隐藏首列
dataGridView1.RowHeadersVisible = false;

获取当前行号
dataGridView1.CurrentCell.RowIndex

删除当前行
dataGridView1.Rows.Remove(dataGridView1.CurrentRow)

增加行
dataGridView1.Rows.Add(1)

获取总行数
dataGridView1.Rows.Count
获取总列数
dataGridView1.ColumnCount
获取列名
dataGridView1.Columns[i].HeaderText
寂静的神经 2010-03-19
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 hejialin666 的回复:]
问题解决了吗?
[/Quote]
没,名字都没弄错,可能是我描述的比较混乱,我重新开个帖子问吧
hejialin666 2010-03-19
  • 打赏
  • 举报
回复
问题解决了吗?
hejialin666 2010-03-19
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 kpsanmao 的回复:]
fzlc就是form1,这段代码就是form2的datagridview的行双击事件
[/Quote]
fzlc就是form1,那fzlc.dataGridView2得意思是你在form1中建立了一个dataGridView叫dataGridView2,那么dataGridView1这哪里?
你是不是改为fzlc.dataGridView1.Rows.Count;
寂静的神经 2010-03-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hejialin666 的回复:]
还有你这句
fzlc.dataGridView2.Rows.Count;
fzlc是什么?Form2的一个实例吗?在Form1中有个Form2的实例?
[/Quote]
fzlc就是form1,这段代码就是form2的datagridview的行双击事件
寂静的神经 2010-03-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hejialin666 的回复:]
你的dtgw1绑定的数据是什么?datatable?获取绑定数据的行数就行了!
[/Quote]
dtgw1没有绑定数据。
就是我要做车辆租赁,多车租赁,
你在from2也就是车辆信息窗体中的datagridview中选择合适的车辆,双击,就把这辆车的信息加入到form1也就是合同信息窗体中的datagridview中了,然后多车租赁嘛,你要是还想租,再去form2中选择合适的车,再双击,就把这辆车的信息追加到form1的fatagridview上一辆车也就是上一行记录之后了啊。
我用的dataset我的思路是在追加的时候判断form1中datagridview的行数,然后再把行数加1就是你要追加的行索引了啊。
hejialin666 2010-03-19
  • 打赏
  • 举报
回复
还有你这句
fzlc.dataGridView2.Rows.Count;
fzlc是什么?Form2的一个实例吗?在Form1中有个Form2的实例?
hejialin666 2010-03-19
  • 打赏
  • 举报
回复
你的dtgw1绑定的数据是什么?datatable?获取绑定数据的行数就行了!
寂静的神经 2010-03-19
  • 打赏
  • 举报
回复
我dtgw1是在前台添加控件的时候编辑的列名 难道我编辑的列名算是一行吗?
lianyi68 2010-03-19
  • 打赏
  • 举报
回复
幫頂下。。。
寂静的神经 2010-03-19
  • 打赏
  • 举报
回复
现在是 我在form1中获取dtgw1的行数也是1了 但dtgw1是空的
hejialin666 2010-03-19
  • 打赏
  • 举报
回复
你传过去的值是你在点击form1的按钮时传过去的,不是实时变化的值。
你双击form2窗体上dtgw2中的某一行,虽然dtgw1变为两行了,可是你那个传过来的参数没有变化,还是1行,而且只要你的form2不关闭,他永远都是1行
寂静的神经 2010-03-19
  • 打赏
  • 举报
回复
然后当dataGridView2中有一行记录时再获取还是空的
寂静的神经 2010-03-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ddsxd19 的回复:]
你说你取dtgw1的行数取的不对,你代码里没有取dtgw1的行数的代码啊。。。
[/Quote]
我语言描述时说的控件名称和我给的代码的名称不同
int j = fzlc.dataGridView2.Rows.Count;
这句就是获取dataGridView的行数,怎么的都是1,dataGridView2中是空的没有数据。
Return门徒 2010-03-19
  • 打赏
  • 举报
回复
窗体间传值??是这个意思不?
ddsxd19 2010-03-19
  • 打赏
  • 举报
回复
你说你取dtgw1的行数取的不对,你代码里没有取dtgw1的行数的代码啊。。。

111,092

社区成员

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

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

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