calendarcolumn的问题

问题描述

相信很多人都用过datagridview的自定义列calendarcolumn论坛上有很多例子代码一般来说如下引用即可DimcolAsNewCalendarColumn()Me.dataGridView1.Columns.Add(col)

但目前我的需求是要在dgv中手动添加行,所以我的dgv就这样设置的:dgv.AllowUserToDeleteRows=Falsedgv.AllowUserToAddRows=Falsedgv.AutoSizeColumnsMode=DataGridViewAutoSizeColumnsMode.Filldgv.RowHeadersVisible=Falsedgv.SelectionMode=DataGridViewSelectionMode.FullRowSelectdgv.AllowUserToResizeRows=Falsedgv.AutoGenerateColumns=Falsedgv.EditMode=DataGridViewEditMode.EditOnEnterdgv.MultiSelect=False

问题来了,每次添加一行,点击日历列就会报错,如下:请大家帮下菜鸟。。。谢谢!

解决方案

解决方案二:
应该是表格中还没有数据,一行都没有。你向当前行的制定列赋值当然会出错,因为当前行不存在啊。先判断一下总行数或当前行号。
解决方案三:
更正:当前行的指定列
解决方案四:
引用1楼Tiger_Zhao的回复:

应该是表格中还没有数据,一行都没有。你向当前行的制定列赋值当然会出错,因为当前行不存在啊。先判断一下总行数或当前行号。

dgv.datasource设置了一个datatable新加行是通过添加datatable新行实现的,新行中也设置了日期列的初始值,所以当前行号应该是0进行新增行后,新行可以显示出来,日期列上也有值但是一旦点击这个值就会出错
解决方案五:
引用2楼Tiger_Zhao的回复:

更正:当前行的指定列

能讲详细些吗?
解决方案六:
既然是添加一行时出错,这是该行还在初始呢。事件中的rowIndex时将要添加的行号,不等于该行已经可以访问了。检查下Me.rowIndex。还有到底时Me.Value出错还是ctl.value出错?
解决方案七:
引用5楼Tiger_Zhao的回复:

既然是添加一行时出错,这是该行还在初始呢。事件中的rowIndex时将要添加的行号,不等于该行已经可以访问了。检查下Me.rowIndex。还有到底时Me.Value出错还是ctl.value出错?

不是添加行的时候出错,行已经添加成功了,而且日期列也有显示,是点击日期列的时候报错出错应该是me.value但是我看不懂什么意思,请看我对me.value的截图
解决方案八:
InitializeEditingControl是初始化编辑模式的行触发的。和已添加[b]显式模式的行没关系。就是控件还在初始,这时不能取Value值。

时间: 2024-10-21 08:47:56

calendarcolumn的问题的相关文章