我需要根据用户使用组合框选择的内容构建一个可以在私有函数中运行代码的应用程序。
例如,组合框有三个值,一,二,三
如果用户选择一个,则在Private Function One()下编写的代码运行,反之亦然
由于
Furqan
答案 0 :(得分:1)
更简单的方法是在选择组合框时指定一个函数。你的函数里面有一个select语句,如:(Pesduo)
Function comboSelected
Case "One"
call Onefunction()
Case "Two"
call Twofunction()
End function
答案 1 :(得分:0)
你为什么宣称这些是私人的?
表单控件无法访问私有函数。您应该将它们声明为受保护。
答案 2 :(得分:0)
查看我的另一个post。这很棒!
答案 3 :(得分:0)
这是一种让它工作的方法 - 假设是Windows Forms。
首先,定义这个类:
Public Class ComboAction
Public Sub New(ByVal text As String, ByVal action As Action)
_text = text
_action = action
End Sub
Private _text As String
Public ReadOnly Property Text() As String
Get
Return _text
End Get
End Property
Private _action As Action
Public ReadOnly Property Action() As Action
Get
Return _action
End Get
End Property
Public Overrides Function ToString() As String
Return Me.Text
End Function
End Class
现在创建一个这样的表单:
Public Class ComboActionForm
Private Sub ComboActionForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.ComboBox1.Items.Add(New ComboAction("Show Foo", AddressOf Foo))
Me.ComboBox1.Items.Add(New ComboAction("Show Bar", AddressOf Bar))
End Sub
Private Sub Foo()
System.Windows.Forms.MessageBox.Show("Foo")
End Sub
Private Sub Bar()
System.Windows.Forms.MessageBox.Show("Bar")
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
CType(Me.ComboBox1.SelectedItem, ComboAction).Action.Invoke()
End Sub
End Class
您可以根据需要向ComboAction
添加任意数量的ComboBox
课程。每个都可以定义任何Action
- 私有方法或其他方法。天空才是极限。 : - )