从组合框中调用私有函数
我需要构建一个可以在私有函数中运行代码的应用程序,具体取决于用户使用组合框选择的内容。从组合框中调用私有函数
例如组合框具有三个值,一,二,三
如果用户选择一个,下专用功能的一个编写的代码()运行并反之亦然
由于
Furqan
你为什么要宣布这些为私人?
表单控件无法访问私有函数。你应该声明它们是受保护的。
这是不正确的。放置在表单上的控件当然可以访问在同一表单中声明的私有成员。如果您试图访问在继承层次结构中较高的表单类中声明的成员,则只需将它们标记为受保护。 – 2010-11-10 15:43:18
我们在这里谈论Windows窗体或Web窗体吗? – Scottie 2010-11-10 15:47:52
我的不好,我假设WinForms,因为这似乎是他最后一个问题的共识。 – 2010-11-10 15:55:10
更简单的方法是为选择组合框时分配一个函数。你的函数里面有一个select语句,如:(Pesduo)
Function comboSelected
Case "One"
call Onefunction()
Case "Two"
call Twofunction()
End function
这里有一种方法使它工作 - 假设Windows窗体。
首先,定义这个类:
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
- 私有方法或其他方法。天空才是极限。 :-)
-1这是一个**你自己的问题** http://stackoverflow.com/questions/4059461/using-private-function,只是更短,并与'三'增加。 – delnan 2010-11-10 15:39:40
请解释您遇到的问题,并将解决方案作为您的其他问题的答案提出。这将使我们更容易根据您的具体使用量身定制我们的建议,而不是从头开始。 – 2010-11-10 15:41:31
下面是一个示例,它会显示我想要的公共类Form1中 保护小组的一个() MSGBOX(“一个被称为”) 结束小组 保护小组的两个() MSGBOX(“两个被称为”) 结束小组 保护小组三() MSGBOX( “三称为”) 结束子 私人小组ComboBox1_SelectedIndexChanged(BYVAL发件人为System.Object的,BYVALË作为System.EventArgs)把手ComboBox1.SelectedIndexChanged 呼叫ComboBox1.Text 结束子 结束类别 – 2010-11-11 06:38:25