首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建和使用表单实例时出现错误

创建和使用表单实例时出现错误
EN

Stack Overflow用户
提问于 2015-02-09 19:05:08
回答 1查看 123关注 0票数 0

我已经使用visual studio 2010在vb.net winform中创建了一个简单的表单(名为RapidSales)。我在这个表格上有datagridview1。当我使用下面的代码调用它时,它成功地工作了:

代码语言:javascript
复制
RapidSales.rgv.CurrentRow.Cells("ProductId").Value = myvalue

但每当我在这个'RapidSales‘表单的实例中创建,然后编写并运行以下代码时,它就会给我一个错误:

代码语言:javascript
复制
Dim winform As New RapidSales()
winform.rgv.CurrentRow.Cells("ProductId").Value = myvalue 

错误消息如下:-

代码语言:javascript
复制
Object reference not set to an instance of an object.

请任何人帮助我怎样才能避免这个错误并成功运行我的代码。

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2015-02-09 20:45:22

从本质上讲,这是另一个NullReference Exception,它似乎与您如何使用表单引用有关。这个问题没有提供太多的上下文,所以需要一些猜测。

代码语言:javascript
复制
Dim winform As New RapidSales()
winform.rgv.CurrentRow.Cells("ProductId").Value = myvalue 

正是以这种方式使用,winform新的RapidSales表单实例;它不是对任何现有RapidSales默认实例的对象引用。这是非常不可能的rgv控件( DGV?)在这一点上没有任何行,所以NRE是通过引用这些空对象而产生的。

如果RapidSales.rgv.CurrentRow.Cells("ProductId").Value = myvalue可以工作,这意味着已经创建了表单的默认实例,并且很可能显示了要填充的控件等。您可能想要这样的东西:

代码语言:javascript
复制
' module/class/form level variable for the other form
Private winform As RapidSales

'... elsewhere when it is needed:
If winform Is Nothing            ' test if already instanced
    winform = New RapidSales()
    ' other setup stuff
End If
winform.Show()               

' else where use it:
Sub Something(myvalue As Integer)          ' no idea of the Type
    winform.rgv.CurrentRow.Cells("ProductId").Value = myvalue 
    ...
End Sub

有关explicit form instances的更多信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28408267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档