gpt4 book ai didi

c# - C#Errorprovider.ContainerControl.Controls仅包含TabControl

转载 作者:行者123 更新时间:2023-12-03 07:58:58 26 4
gpt4 key购买 nike

我有一个包含TabControl和ErrorProvider的窗体。选项卡中的一个具有多个文本框和一个按钮。如果内容无效,则文本框将对Validate事件使用SetError()。当按下按钮时,它将运行:

 bool ok = true;
foreach (Control c in errorProviderDv.ContainerControl.Controls)
{
MessageBox.Show(c.Name);
if (errorProviderDv.GetError(c) != "")
{
ok = false;
}
}

TabControl是errorProviderDv.ContainerControl.Controls中的唯一控件,即使设置了多个错误并以表格形式显示也是如此。

难道我做错了什么? ErrorProvider是否需要成为选项卡的子项而不是表单的子项?

最佳答案

TabControl本身是一个包含TabPages的容器。这些TabPage是包含您的文本框的容器。

下面的代码可以满足您的需要,但是您可能希望对其进行清理,以便在容器中进行递归调用,因此它几乎适用于任何类型。

    private void button1_Click(object sender, EventArgs e)
{
bool ok = true;
foreach (Control c in errorProviderDv.ContainerControl.Controls)
{
if (c is TabControl)
{
foreach (Control t in (c as TabControl).SelectedTab.Controls)
{
MessageBox.Show(t.Name);
if (errorProviderDv.GetError(t) != "")
{
ok = false;
}
}
}
}
}

关于c# - C#Errorprovider.ContainerControl.Controls仅包含TabControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38781084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com