【问题标题】:How to get selected radio button value in Visual Basic如何在 Visual Basic 中获取选定的单选按钮值
【发布时间】:2020-06-09 09:09:36
【问题描述】:

我有很多以 0 到 20 之间的数字命名的单选按钮。选中它们时运行的代码几乎相同。如果我能以某种方式使用“checkedRadioButton.value”之类的东西,事情会容易得多。

I have some pictures to show, when radiobutton1 is selected picture1 will be shown.我得到了图片

OpenFileDialog1.Multiselect = True
OpenFileDialog1.ShowDialog()

并且想使用类似的东西

PictureBox1.ImageLocation = OpenFileDialog1.FileNames(checkedRadioButton.value)

【问题讨论】:

  • 这似乎有点奇怪,因为第二个代码 sn-p 似乎假设用户选择了与 RadioButtons 相同数量的文件。您是否在选择文件后创建RadioButtons,因此保证数字匹配?如果是这样,为什么不在我下面的答案中使用该原则,而是将文件路径实际分配给 Tag 属性?当您可以首先存储所需的实际值时,存储一个值以获得另一个值并没有多大意义。
  • 是的,它们保证匹配。我有测试问题作为图像,其中有 20 个。第一个单选按钮被选中,第一个问题出现。
  • 请查看我的答案的更新。
  • @jmcilhinney 帮助很大,非常感谢。

标签: vb.net


【解决方案1】:

一个选项是将每个控件的Tag 属性设置为关联的值。 Tag 是用于存储任意数据的通用属性,因此您可以将其用于任何您喜欢的用途。它是Object 类型,所以你需要转换你从中得到的任何东西。要从表单上选中的RadioButton 中获取关联的Integer 值,您可以这样做:

Dim number = CInt(Me.Controls.OfType(Of RadioButton)().First(Function(rb) rb.Checked).Tag)

如果您的 RadioButtons 在其他容器中,例如PanelGroupBox,那么您必须改用该容器的 Controls 集合。

编辑:

由于这里的最终游戏似乎是获取文件路径,因此首先将文件路径分配给Tag 属性是有意义的。然后可以直接从RadioButton获取文件路径,例如

PictureBox1.ImageLocation = CStr(Me.Controls.OfType(Of RadioButton)().First(Function(rb) rb.Checked).Tag)

另一种选择是创建自己的派生控件并添加专用属性,例如

Public Class FilePathRadioButton
    Inherits RadioButton

    Public Property FilePath As String

End Class

然后您可以使用该类而不是标准的RadioButton 类,并使用FilePath 属性而不是Tag 属性。那么就不需要演员了:

PictureBox1.ImageLocation = Me.Controls.OfType(Of RadioButton)().First(Function(rb) rb.Checked).FilePath

【讨论】:

    猜你喜欢
    • 2012-04-23
    • 2013-03-28
    • 1970-01-01
    • 2014-12-13
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多