vb.net - 如何将用户的文本乘以从菜单中选择的数组项?
问题描述
我正在尝试编写一个总工资计算器,并且无法完全获得将用户输入的数字乘以所选工资率的编码权。
我尝试的一切都是基于调整其他项目的代码以适应我当前的项目,但只会返回错误。
Private strCode(,) As String = {{“P23”, “10.5”},
{“P56”, “12.5”},
{“F45”, “14.25”},
{“F68”, “15.75”},
{“F96”, “17.65”}}
Private Sub txtHours_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtHours.KeyPress
' Accept only numbers, the period, and the Backspace key.
If (e.KeyChar < "0" OrElse e.KeyChar > "9") AndAlso e.KeyChar <> "." AndAlso e.KeyChar <> ControlChars.Back Then
e.Handled = True
End If
End Sub
Private Sub BtnCal_click(sender As Object, e As EventArgs) Handles btnCalc.Click
Const V As strCodes(,)(,)
Dim txtHours As Decimal = txtHours.text
lblGross.Text = {{txtHours.Text} * {lstCodes.SelectedIndex}}
End Sub
无论我将 txtHours 声明为双精度数还是十进制数,它总是返回无法转换的错误。代码的底部部分不起作用,但本质上是我需要使用此代码进行的操作。
解决方案
我创建了一个结构来保存您的数据。然后结构类型的列表可以保存数据,并且可以将 List(Of T) 绑定到列表框。display 和 value 成员设置为结构的属性。当在列表框中选择一个项目时,我们可以获得 .SelectedValue 并在计算中使用它。
Public Structure PayRate
Public Property RateClass As String
Public Property PayRate As Decimal
Public Sub New(rClass As String, pRate As Decimal)
RateClass = rClass
PayRate = pRate
End Sub
End Structure
Private PayRates As New List(Of PayRate)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
PayRates.Add(New PayRate(“P56”, 12.5D))
PayRates.Add(New PayRate(“F45”, 14.25D))
PayRates.Add(New PayRate(“F68”, 15.75D))
PayRates.Add(New PayRate(“F96”, 17.65D))
ListBox1.DataSource = PayRates
ListBox1.DisplayMember = "RateClass"
ListBox1.ValueMember = "PayRate"
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Hours As Decimal
If Decimal.TryParse(TextBox1.Text, Hours) Then
Label1.Text = (Hours * CDec(ListBox1.SelectedValue)).ToString("000.00")
Else
MessageBox.Show("Please enter a valid number in Hours box.")
End If
End Sub
推荐阅读
- sql - 基于列值的 SQL 选择
- python - 为烧瓶应用程序重新加载数据
- python - 有一个列表并尝试在 Python 中创建多项式(符号计算)
- angular - 时刻日期格式总是返回 01/01/1970 而不是角度应用程序中的实际日期
- ios - 在 switch case 语句中获取 segue.destination 作为视图控制器
- pdo - PDO 代码不能在 000webhost 上运行,但可以在 localhost 上运行
- javascript - 如何分析无限嵌套的公式?
- linux - 如何在 Lisp 中加载 cl-libusb 库而不会出现“-no-pie”cc 错误?
- node.js - Fabric Node SDK - 违反实例化策略:签名集不满足策略
- java - 使用 jna 获取 IShellFolder