gpt4 book ai didi

vb.net - 在 VB.net 中获取对象引用错误

转载 作者:行者123 更新时间:2023-12-04 20:00:38 25 4
gpt4 key购买 nike

想知道为什么在 VB.net 中尝试调试我的程序时会出现此错误

Object Reference not set to an instance of the object.

它说由于第 4 行和第 5 行,我收到了这个错误:

Public Class Form1

Dim tSize
Dim S1 As String = ComboBox1.Text
Dim S2 As String = ComboBox2.Text

Private Sub FitContents()
tSize = TextRenderer.MeasureText(TextBox3.Text, TextBox3.Font)
TextBox3.Width = tSize.Width + 10
TextBox3.Height = tSize.Height
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Text = S1
TextBox2.Text = S2
End Sub

Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged
Call FitContents()
End Sub

End Class

如果有人能解释我收到此错误的原因,我将不胜感激。

最佳答案

像 S1 和 S2 这样的类级变量在对象构建过程的早期就被初始化了。您的视觉控件(如 Combobox1 和 Combobox2)在调用 InitializeComponent() 方法之前不会创建,而这几乎是在构造函数的末尾。

因此,当您尝试将 S1 设置为 Combobox1.Text 的值时,Combobox1 对象尚未创建,并且尝试引用 Null 对象的 .Text 属性会给您带来异常。

相反,在构造函数的末尾设置这些值,或响应 Load 等事件。

您也可以尝试将它们构建为属性...像这样:

Private Property S1() As String
Get
Return ComboBox1.Text
End Get
Set (ByVal value As String)
ComboBox1.Text = value
End Set
End Property

关于vb.net - 在 VB.net 中获取对象引用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13983743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com