vb.net - Visual Basic:如何创建子重置按钮
问题描述
我试图创建一个允许我重置按钮的子。我将有很多按钮,并且只想在按钮中调用一个 sub 以使我的代码更清晰。有人可以指导我如何做到这一点我真的很感激
Private Sub Button2_MouseDown(sender As Object, e As MouseEventArgs) Handles Button2.MouseDown, Button1.MouseDown
If e.Button = Windows.Forms.MouseButtons.Right Then
btn = DirectCast(sender, Button)
ButtonReset()
End If
End Sub
Public Sub ButtonReset()
Select Case MsgBox("Do you want to reset?", MsgBoxStyle.YesNoCancel, "caption")
Case MsgBoxResult.Yes
btn2_Count = 0
MyInterval = 1
Button2.Text = "Station 2"
Button2.BackColor = DefaultBackColor
Case MsgBoxResult.Cancel
Exit Sub
Case MsgBoxResult.No
Exit Sub
End Select
End Sub
解决方案
正如上面提到的@jmcilhinney,不需要使用Select Case
.
我会在这里写一个小例子,可能会有所帮助。但是,我不会包括
btn2_Count = 0
MyInterval = 1
因为我不是 100% 他们是什么。
还有一件事很突出。您似乎将 btn 作为按钮(其中一个按钮)然后调用硬编码为 button2 的 sub。似乎打败了整个观点。
根据我的回答,我假设您想要 button1 的“Station 1”和 button2 的“Station 2”?您可以将一个数字预加载到按钮的“.Tag”属性中,并使用它来确定正在处理哪个按钮。
例如,类似:
Private Sub Button_MouseDown(sender As Object, e As MouseEventArgs) Handles Button1.MouseDown, Button2.MouseDown
If e.Button = Windows.Forms.MouseButtons.Right Then
If MessageBox.Show("Do you want to reset?", "Caption", MessageBoxButtons.OKCancel) = DialogResult.OK Then
Dim btn As Button = DirectCast(sender, Button)
btn.Text = String.Format("Station {0}", btn.Tag.ToString)
btn.BackColor = DefaultBackColor
End If
End If
End Sub
推荐阅读
- python - 这个日期时间的格式是什么?
- azure - 使用事件中心捕获的优势
- angular - 在单个 Docker 映像中构建多个 Angular 应用程序
- python - 将零膨胀的未知分布拟合到 python 中的模型
- kubernetes - Helm,有没有办法将 kubernetes 标签添加到 values.yaml(不使用模板和 _helpers.tpl)
- flutter - 如何将大图标对齐在中心,在 Flutter 中的较小行内?
- python - 为什么 ogr2ogr 试图打开它正在运行的应用程序?
- python - Pickle 转储多个变量并在另一个目录的另一个文件中读取它们
- visual-studio-code - VSCode:更改未选择事件的背景颜色
- android-studio - 是否可以从 CLI 生成 Android 启动器图标?