vb.net - 在 rad 按钮单击错误时转换单位:System.InvalidCastException
问题描述
我正在尝试在 VB.net 的计算器表单上使用单选按钮来单击从平方厘米转换为平方,反之亦然,但是当我将单选按钮单击事件添加到代码中时,我不断收到此错误:
System.InvalidCastException:“从字符串“”到类型“Double”的转换无效。
点击事件子程序看起来像这样
Private Sub radSquareInch_CheckedChanged(sender As Object, e As EventArgs) Handles radSquareInch.CheckedChanged
txtAnswer.Text = CDbl(txtAnswer.Text) * 0.155
End Sub
解决方案
.Net 有一个很好的方法来检查文本框中的有效条目。它是.TryParse
。即使您设置.Text = "0"
了,Form.Load
您也无法阻止用户在单击单选按钮之前将其删除。
另一个问题是.CheckedChanged
用于事件。单选按钮可以从未选中更改为选中,但也可以从选中更改为未选中。假设按钮被选中不会总是得到正确的结果。
Private Sub cmTOin_CheckedChanged(sender As Object, e As EventArgs) Handles cmTOin.CheckedChanged
Dim input As Double
If Double.TryParse(TextBox1.Text, input) Then
If cmTOin.Checked Then
TextBox2.Text = (input * 0.155).ToString & "sq in"
ElseIf inTOcm.Checked Then
TextBox2.Text = (input * 6.452).ToString & "sq cm"
Else
MessageBox.Show("Please select a radio button")
End If
Else
MessageBox.Show("Please enter a valid number.")
End If
End Sub
推荐阅读
- css - 如何在角度选择时将下拉箭头的方向从右侧更改为向下
- machine-learning - 神经网络物理模型
- django-models - 如何在 django 中使同一模型的两个字段唯一
- android - 从安卓的Play商店下载应用程序后扫描二维码不起作用
- hive - 我们如何通过 SparkSql 读取 hive 事务表并对其执行删除操作
- spring-boot - 嵌入式数据库错误:为什么它给出空结果
- nuxt.js - Nuxt 多个资产发射到相同的文件名热更新
- python - 使用pyquaternion旋转向量数组
- php - 如何使用 ajax 将数据属性发送到 laravel 控制器(存储在数据库中)?
- excel - IE关闭窗口并在新窗口中连接定向链接