我正在编写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;
            }
        }
    }
}


您显然可以将地图放置在其他地方。一种替代的(更好的)方法是使用XAML-这个问题的另一个答案演示了如何使用XAML。

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

10-12 13:17