C# - 在循环中启用多个文本框

标签 c# wpf loops textbox

我正在编写一个 WPF 程序,它需要有人输入一个数字,然后启用相应数量的文本框。目前我有一个系统可以检查每个文本框,例如

private void navnumbox_TextChanged(object sender, TextChangedEventArgs e)
{
    try
    {
        if (Int32.Parse(navnumbox.Text) > 0)
        {
            One.IsEnabled = true;
        }

        if (Int32.Parse(navnumbox.Text) > 1)
        {
            Two.IsEnabled = true;
        }
    }
}

我想把它放到一个循环中,我想我可能需要将一和二存储在一个数组中,但我试过了,但我不知道如何访问它们

最佳答案

也许你可以尝试这样的事情(抱歉我没能测试)。

private void navnumbox_TextChanged(object sender, TextChangedEventArgs e)
{
    var textBoxesMap = new Dictionary<int,TextBox>()
    {
        {1, One},
        {2, Two}
        // etc
    };

    try
    {
        int number = int.Parse(navnumbox.Text)
        foreach(var item in textBoxesMap)
        {
            if(item.Key <= number)
            {
                item.Value.IsEnabled = true;
            }
        }
    }
}

而且您显然可以将 map 放在其他地方。另一种(更好的)方法是使用 XAML - 关于这个问题的另一个答案演示了如何这样做。

关于C# - 在循环中启用多个文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34693186/

相关文章:

c# - 计算价格方法在 Visual Studio 中不起作用

c# - 在 EFCore 预加载 LINQ 查询中,如何在 ThenInclude() 表达式中引用顶级实体?

wpf - 如何使用 MVVM 获取多个选中的数据网格复选框项目

wpf - DateTime 属性在更改时不会触发 PropertyChanged 事件

loops - Love2d:如何保留窗口内容?

c# - System.Speech.Synthesis 在 2012 R2 上因高 CPU 而挂起

c# - 如果在 WPF 4.0 中使用闪屏,带有异常详细信息的 MessageBox 会立即消失

java - 嵌套 do while 循环从一个循环跳转到另一个循环

C# 更好地初始化列表然后遍历它,或者只是在循环条件下初始化?

c# - 如何阻止用户在不禁用列表框中选择项目