Visual Basic Radio按钮结合If Else语句实现州首府显示的代码报错求助
逐报错对应修正方案
- 修正BC30205语法错误
代码里第12行写的Dim lblOne.Text As String是完全错误的语法:Dim关键字仅用于声明独立的本地变量,不能直接引用控件的.Text属性做声明。而且lblOne是从工具箱拖到窗体上的Label控件,本身已经由窗体设计器自动定义,完全不需要手动写Dim声明,直接把这整行删掉即可。 - 修正控件未声明与Handles子句报错
报btnDisplay、btnExit、btnTexas等控件未声明、Handles找不到对应WithEvents变量,核心原因是设计器里的控件Name属性和代码中引用的名称不匹配——由于你提到之前代码可以正常运行,大概率是在设计视图操作时误改了控件名称。切到窗体设计视图,逐个选中拖入的控件,在属性窗口把Name改成和代码完全一致的名称:- 两个普通按钮:Name分别设为
btnDisplay、btnExit - 五个单选按钮(RadioButton):Name分别设为
btnTexas、btnOhio、btnFlorida、btnAlabama、btnArizona - 用于显示首府文本的Label:Name设为
lblOne
只要控件名称和代码完全对应,设计器会自动为控件生成可绑定事件的WithEvents标识,Handles子句的报错就会自动消除。
- 两个普通按钮:Name分别设为
- 解决
Close不是frmMain成员的报错
这个是连锁编译错误:前面的语法错误会导致VS无法正确识别frmMain是继承自标准Windows窗体的类,只要把前面的语法错误、控件引用错误全部修正,VS会自动加载标准窗体的基础方法,Me.Close()的调用就不会再报错。 - 消除空引用警告
这个警告同样是因为第12行错误的Dim语句,让VS把lblOne解析成了未赋值的本地临时变量,删掉那行错误声明后,警告会自动消失。另外可以把Austin前面多余的前导空格删掉,避免显示时文本偏移。
修正后的可运行完整代码
Option Explicit On Option Strict Off Option Infer Off Public Class frmMain Private Sub btnDisplay_Click(Sender As Object, e As EventArgs) Handles btnDisplay.Click If btnTexas.Checked Then lblOne.Text = "Austin" ElseIf btnOhio.Checked Then lblOne.Text = "Columbus" ElseIf btnFlorida.Checked Then lblOne.Text = "Tallahassee" ElseIf btnAlabama.Checked Then lblOne.Text = "Montgomery" ElseIf btnArizona.Checked Then lblOne.Text = "Phoenix" End If End Sub Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click Me.Close() End Sub End Class
内容的提问来源于stack exchange,提问作者BAM0904
相关产品推荐
相关产品推荐

