首先,这是一个关于使用Windows Forms的桌面应用程序的问题,而不是ASP.NET的问题。 我需要与其他forms的控件进行交互。 我想通过使用,例如,以下访问控件… otherForm.Controls["nameOfControl"].Visible = false; 它不会像我所期望的那样工作。 我最终从Main抛出一个exception。 但是,如果我把这些控件public而不是private ,我可以直接访问它们,就像这样… otherForm.nameOfControl.Visible = false; 但是,这是做到这一点的最好方法吗? 是否将控制权视为“最佳实践”? 有没有一种“更好”的方式来访问另一种forms的控制? 进一步说明: 这实际上是对我问的另一个问题的后续, 在C#中创build一个“树视图首选项对话框”types的接口的最佳方法? 。 我得到的答案非常好,解决了我在保持界面直观和易于在运行时和devise时都可以工作的许多组织问题。 但是,它确实带来了这个容易控制界面其他方面的小问题。 基本上,我有一个根forms,它实例化了许多其他forms,位于根表单上的一个面板上。 因此,例如,其中一个子窗体上的单选button可能需要更改主根表单上状态条图标的状态。 在这种情况下,我需要子窗体在父(根)forms的状态栏中与控件进行交谈。 (我希望这是有道理的,而不是以“谁是最先”的方式)。
我需要获得一个types为x的表单上的所有控件。 我很确定我在过去曾经看到过这样的代码: dim ctrls() as Control ctrls = Me.Controls(GetType(TextBox)) 我知道我可以遍历所有使用recursion函数获取子项的控件,但有没有更容易或更直接的,可能如下所示? Dim Ctrls = From ctrl In Me.Controls Where ctrl.GetType Is Textbox
我需要search匹配给定名称或types的控件的WPF控件层次结构。 我该怎么做?