【发布时间】:2021-03-22 13:43:00
【问题描述】:
我正在尝试使用Option Strict On 来清理我作为初学者程序员的方式。我设法清除了除此之外的所有错误。
我正在使用 ToolStrip 的 Tag 属性来获取一些文本信息。点击 ToolStrip,我需要记住一个字符串中 Tag 的值并更改该 Tag 的值。
如何将 Object {String} sender.tag 转换为 String 以及 String myString 和 Object {字符串}?
Private Sub ToolStrip_ItemClicked(sender As Object, e As ToolStripItemClickedEventArgs) Handles ToolStrip.ItemClicked
Dim myString As String = sender.tag
sender.tag = "It is selected"
'more code...
End Sub
编辑:请参见此处代码相关部分的屏幕截图:
【问题讨论】:
-
你确定你现在有
Option Strict On吗?你不能用那个选项写这个On:Dim myString As String = sender.tag:发件人是Object类型,Object没有Tag属性(e.ClickedItem可以有),所以错误是不同的。 -
@Jimi 谢谢你的回复。我用错误的屏幕截图更新了问题。
-
如前所述,
sender(如您在处理程序定义中所见)是一个对象,Object没有 Tag 属性。因此,您当然不能要求读取 Type 未提供的属性的值。您需要将sender转换为实际类型。但是,您真正想阅读的 UI 元素的 Tag 是什么?您是否在那里设置了断点并检查了sender实际上是什么?不是点击的项目。是否要读取哪个 UI 元素的 Tag 属性? -
@Jimi,我使用的是 Winform,工具栏中有几个按钮。每个按钮都有属性 Tab ToolBarButton.Tag Property。创建工具栏后,我双击它,屏幕截图中的 Private Sub 是在 VB 代码中创建的。我添加了我向您展示的行。如果 Strict 为 Off,则代码运行良好。我试过 .ToString
标签: vb.net winforms toolstrip toolstripitem