gpt4 book ai didi

c# - 面板 C# 中文本框的存在性检查问题 - Windows 窗体应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 20:56:36 25 4
gpt4 key购买 nike

对于我一直在开发的游戏,我正在尝试对面板中的所有文本框进行存在性检查。

在我们继续之前,这是我的代码:

private void btnCheck_Click(object sender, EventArgs e) 
{

foreach (Panel pnl in Controls.OfType<Panel>())
{
foreach (TextBox tb in pnl.Controls.OfType<TextBox>())
{
if (string.IsNullOrEmpty(tb.Text.Trim()))
{
MessageBox.Show("Please give an answer for all questions!");
okFlag = false;
return;
}
else
{
okFlag = true;
}
}
}
if (okFlag == true)
{
//Check answers below

我遇到的问题是,即使我在所有文本框中都有值,MessageBox 仍会显示“请回答所有问题。

okFlag 是一个 bool 值,我在代码顶部将其初始化为 true

我还应该注意到,我有多个面板,其中包含文本框,但当显示一个面板时,所有其他面板都被隐藏了。

This is the source where I got the code for this from

总而言之,我的问题是对我的文本框的存在性检查不起作用,因为它似乎认为文本框为 null 或空,即使我确实在其中包含值也是如此。

最佳答案

当您有多个面板并且只有一个可见时,您的检查将在第一个不可见面板处退出,因为文本框没有文本(它是不可见的)。

在您的代码中,您应该检查面板是否可见:

private void btnCheck_Click(object sender, EventArgs e) 
{

foreach (Panel pnl in Controls.OfType<Panel>())
{
if(!pnl.Visible)
continue;

foreach (TextBox tb in pnl.Controls.OfType<TextBox>())
{
if (string.IsNullOrEmpty(tb.Text.Trim()))
{
MessageBox.Show("Please give an answer for all questions!");
return;
}
}
...

关于c# - 面板 C# 中文本框的存在性检查问题 - Windows 窗体应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49862201/

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