c# - 带子项的 Windows 窗体控件

标签 c# winforms panel

我的 Windows 窗体中有一个面板,我想向其中添加文本框等其他控件,并循环访问面板中的所有元素以检索其中的所有数据。

这可能与面板控制有关吗?

我尝试了一个 foreach 循环,例如

foreach(textbox tb in panel1)
{
}

但我收到一条错误消息,指出面板没有 GetEnumerator 的公共(public)定义。

什么是更好的控件/容器,我可以在其中添加更多控件并最终访问其中的所有控件及其数据?


更新 请注意 - 我在代码中添加多个文本框时遇到了一些问题。 我创建了一个文本框对象,然后将其添加到面板,但只显示了一个。 我在本网站和其他网站的其他地方读到,添加同名文本框可能会导致问题。

为解决此问题,我将面板替换为效果很好的流式布局面板。 希望这对其他人有帮助。

最佳答案

这是正确的控件。尝试迭代面板对象的 Controls 属性。

foreach(Control control in panel.Controls)
{
    if(control is TextBox)
    {
         TextBox textBox = control as TextBox;
         //etc.
    }
}

关于c# - 带子项的 Windows 窗体控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18728150/

相关文章:

python - 拖动面板时如何清除wxpython框架内容?

c# - 如何在 Windows 2012r2 上使用提升的 UAC 权限运行我的 C# 服务?

c# - 将所有者授予从另一个线程调用的 MessageBox

c# - WinForm/控制台混合应用程序中的行为

twitter-bootstrap-3 - Bootstrap面板中可以有两列吗?

c# - 在 WinForms 中动态获取面板中加载的控件详细信息

c# - 如何通过ARM模板将Azure函数注册到API管理器?

c# - 如何获取使用局部变量的 ConstantExpression 的值?

c# - 无法在通用集合中更改结构的成员值

c# - 从最小化状态最大化表单不起作用