【问题标题】:Iterating through Panel controls遍历 Panel 控件
【发布时间】:2017-11-04 07:39:20
【问题描述】:

在 C# WinForm 应用程序中,我需要迭代所有属于 TextBox 类型的控件。 TextBox 控件是动态添加的。

        IEnumerable<TextBox> textBoxes = ActionsPanel.Controls.OfType<TextBox>();

        Debug.WriteLine(ActionsPanel.Controls.Count);

        foreach (TextBox textBox in textBoxes)
        {

        }

上面的代码不起作用,在 foreach 我什么也没得到。奇怪的是,如果我计算面板中的所有控件,我会得到面板上的真实控件编号。

        Debug.WriteLine(textBoxes.Count());

返回0。我在这里做错了什么,真的很混乱。

【问题讨论】:

  • 这可能只是面板不包含控件。您是如何将它们添加到 ActionsPanel 中的?
  • 我使用panel.Controls.Add(mytextbox); 添加一个TextBox 类型的控件示例。控件在获取过程中也是可见的。
  • panel 是 ActionPanels 吧?
  • 是的,我应该在 stackoverflow 写 ActionsPanel 而不是 panel。
  • 那么这里有一些不同的东西。如果 ActionsPanel.Controls.OfType 没有返回任何文本框,则那里没有文本框。关于清除/删除这些框添加了什么?

标签: c# winforms textbox controls


【解决方案1】:

找到了解决方案,问题是所有的TextBox控件都在一个TableLayoutPanel中以获得更好的布局控制,完整的源代码在这里:pastebin.com/yz8JN4yr

【讨论】:

    猜你喜欢
    • 2016-11-20
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    相关资源
    最近更新 更多