当前位置:编程学习 > C#/ASP.NET >>

这怪问题是为什么?

我的DataGridView控件的列标都显示出来了,执行Rows.Add方法添加行时报错说不能向没有列的Datagridview控件添加行,应该先添加列,这是为啥啊?确认没有搞错控件啊,用眼珠子作担保。用DataGridView控件很久了,从没遇到这怪事啊

        With DataGridView4
            .ColumnCount = 7
            .Columns(0).HeaderText = "编码"
            .Columns(1).HeaderText = "名称"
            .Columns(2).HeaderText = "单位"
            .Columns(3).HeaderText = "入库数量"
            .Columns(4).HeaderText = "销售单价"
            .Columns(5).HeaderText = "入库单价"
            .Columns(6).HeaderText = "入库金额"


            .Columns(3).Width = 50
            .Columns(4).Width = 60
            .Columns(5).Width = 50
            .Columns(6).Width = 50

         

        End With



'这是另一个模块里的添加行

        Fht.DataGridView4.Rows.Add()
        R = Fht.DataGridView4.Rows.Count - 1
        Fht.DataGridView4.Rows(R).SetValues(JJJJ)
--------------------编程问答-------------------- 哪一行报错? --------------------编程问答-------------------- 我运行时没错啊。

你那个 “Fht”是什么啊?

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim R As Integer
        With DataGridView4
            .ColumnCount = 7
            .Columns(0).HeaderText = "编码"
            .Columns(1).HeaderText = "名称"
            .Columns(2).HeaderText = "单位"
            .Columns(3).HeaderText = "入库数量"
            .Columns(4).HeaderText = "销售单价"
            .Columns(5).HeaderText = "入库单价"
            .Columns(6).HeaderText = "入库金额"


            .Columns(3).Width = 50
            .Columns(4).Width = 60
            .Columns(5).Width = 50
            .Columns(6).Width = 50


            Me.DataGridView4.Rows.Add()
            R = Me.DataGridView4.Rows.Count - 1
            Me.DataGridView4.Rows(R).SetValues("JJJJ")

        End With
    End Sub --------------------编程问答-------------------- 回楼上两位,下面DataGridView4.Rows.Add报错

Fht是另一个窗口

我刚才又试了一下,我把报错那行换成DataGridView4.columns.Add(100,"再加一列")
发现我的DataGridView4没显示出来,但Debug.print DataGridView4.Columns.count 反回1
为啥啊,郁闷 --------------------编程问答-------------------- “Fht是另一个窗口”
还有几个窗口啊? 不是同一窗口下的吗? --------------------编程问答-------------------- 路过,帮顶下 --------------------编程问答-------------------- 回楼上,一共两个窗口。我的程序是在Fht窗口里输入商品信息来检索商品,支持模糊方式,如果结果大于一个,就显示出另一个窗口来供用户选择,我的Fht.DataGridView4就是在选择的窗口向输入窗口的网格写数据时行添加行.不晓得你看明白了没有 --------------------编程问答-------------------- 现在的现象是我调用的Fht窗口的DataGrid4好像根本不是我在Fht窗口里画的DataGrid4,用代码返回它的行和列都是0,其实在窗体加载时我都是设置过行和列并都能正常显示的。无论是调用Fht.Datagridview4添加列添加行,Fht都没反映。 --------------------编程问答-------------------- 知道为什么了,Fht在另一窗体Fsa内实例化为FFht,必需要Fsa.FFht.DataGridView4这样调用才行。唉,还是对面对对象思想的理解不够透彻,要加强学习啊 --------------------编程问答-------------------- --------------------编程问答-------------------- 同意楼上,建议使用事件驱动,就是增加一个event rowsadd事件,然后raiseevent rowsadd. --------------------编程问答-------------------- 学习, --------------------编程问答-------------------- 路过, 学习 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 8 楼 ttisme 的回复:
知道为什么了,Fht在另一窗体Fsa内实例化为FFht,必需要Fsa.FFht.DataGridView4这样调用才行。唉,还是对面对对象思想的理解不够透彻,要加强学习啊

楼主很明显,定义名字,都没有已有意义的字母来写,让人看了很是费解! --------------------编程问答-------------------- hehe.................
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,