为了账号安全,请及时绑定邮箱和手机立即绑定

如何显示网格中的特定文本框并隐藏所有其他文本框?

如何显示网格中的特定文本框并隐藏所有其他文本框?

C#
慕斯王 2023-08-20 10:02:11
我目前正在开发 C# WPF 应用程序。我有一个网格,网格中有近 10 个文本框,根据客户的要求,我必须向他展示文本框。我当前正在从文件中读取一个变量,假设 4 并向他显示 10 个文本框中的 4 个文本框,或者如果我在文本文件中写入 5 个文本框,我的代码应该向他显示 10 个文本框中的 5 个文本框。我怎样才能在我的代码中实现这种现象
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

如果您的文本框都共享一个公共父容器(即网格),那么迭代它们就非常容易。XAML 可能看起来像这样:


<Grid Name="textBoxContainer">

    <!-- row, column definitions omitted -->

    <TextBox />

    <TextBox />

    <TextBox />

    <!-- etc... -->

</Grid>

...然后在代码隐藏文件中,您需要像这样迭代这些文本框:


int showBoxCount = 4; // this number gets loaded from your file elsewhere

foreach (var textBox in textBoxContainer.Children.OfType<TextBox>()) {

    if (showBoxCount > 0)

        textBox.Visibility = Visibility.Visible;

    else

        textBox.Visibility = Visibility.Collapsed;

    showBoxCount--;

}

如果文本框不共享公共父容器,那么您需要为每个文本框指定一个名称,然后在代码隐藏文件中手动将它们放入数组中。


XAML:


<TextBox Name="txt1" />

<TextBox Name="txt2" />

<TextBox Name="txt3" />

<!-- etc... -->

隐藏代码:


var textBoxes = new TextBox[] { txt1, txt2, txt3, etc... };

int showBoxCount = 4; // this number gets loaded from your file elsewhere

foreach (var textBox in textBoxes) {

    if (showBoxCount > 0)

        textBox.Visibility = Visibility.Visible;

    else

        textBox.Visibility = Visibility.Collapsed;

    showBoxCount--;

}


查看完整回答
反对 回复 2023-08-20
  • 1 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信