我正在制作一个非常简单的应用程序,它有多个屏幕(作为面板),这些屏幕在左侧边栏上隐藏/显示单击按钮。
我有一个PNLHome、PNLServerSettings、PNLScripts和PNLSettings作为主面板。每个面板的.Name属性都是"PNLHome“、"PNLServerSettings”、....etc。
我希望能够根据您在PNLSettings的ComboBox中所做的选择来更改“启动屏幕”,这样当您启动应用程序时,立即显示的面板就是基于该ComboBox选择的。
我已经准备好了ComboBox项,并且我有一个函数可以隐藏所有面板,并显示您传递给它的面板:例如showPanel(PNLHome),它本质上只是显示您给它的面板,所有这些都工作得很好。此showPanel()在单击左侧边栏上的一个主要按钮时触发
我想要的是传递一个Control.Name字符串到我的showPanel()函数中,然后我想通过设置面板中的“保存/应用”按钮将这个.Name字符串存储到My.Settings中,我可以很容易地进行设置。
因为我将把.Name字符串传递给我的showPanel()函数,所以我需要能够引用我通过它的名称而不是对象ID本身显示的面板(我不确定它是否被称为ID,但它是通过"DIM WithEvents PNLHome As Panel“声明来声明面板的”name“。
总结一下问题;我可以通过.Name属性引用PNLHome吗?否则可以直接在My.Settings中存储PNLHome的ID吗?我可以很容易地将My.Settings.StartPanel传入我的showPanel()函数。
发布于 2020-03-16 16:11:24
只需使用Controls集合查找控件即可。
Private Function GetPanel(PanelName As String) As Panel
Dim SomePanel As Panel = CType(Controls(PanelName), Panel)
Return SomePanel
End Function
https://stackoverflow.com/questions/60685740
复制相似问题