2

(使用WPF)是否可以使用a的数字TextBox来选择参数名称?例如,用户可以将 0、1、2 或 3 作为文本放入TextBox

private void button1_Click(object sender, RoutedEventArgs e)
{
    int test = int.Parse(textBox1.Text);

    string nr1 = "this string is 1";
    string nr2 = "this string is 2";
    string nr3 = "this string is 3";

    MessageBox.Show();
}

现在MessageBox.Show();想把一些东西作为这样的nr(test)
事情可能吗?

4

5 回答 5

6

为什么不使用字典

var dict = new Dictionary<int,string>();
dict.Add(1,"String Number 1");
dict.Add(2,"String Number 2");
dict.Add(3,"String Number 3");

int test = int.Parse(textBox1.Text);
MessageBox.Show(dict[test]);
于 2013-06-17T09:18:51.787 回答
1

我认为这会帮助你:

private void button1_Click(object sender, RoutedEventArgs e)
        {
            int test = int.Parse(textBox1.Text);

            string[] nr = new string[3]{"this string is 1","this string is 2","this string is 3"};
            MessageBox.Show(nr[test-1]);
        }
于 2013-06-17T09:18:14.887 回答
1

Dictionary<int,string>您可以使用您希望通过键处理的所有数据创建一个:

MessageBox.Show(myDict[test])

在这里您可以看到MSDN 文档

于 2013-06-17T09:19:27.643 回答
1

您也可以使用FindName()

让我们建议:

XAML

<StackPanel>
    <TextBox Height="23" Name="textBox1" Width="120" />
    <TextBox Height="23" Name="textBox2" Width="120" />
    <TextBox Height="23"  Name="textBox3" Width="120" />
    <Button Content="Button" Height="23"  Width="75" Click="button1_Click" />
</StackPanel>

你的可能看起来像这样

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        int number =2;
        TextBox tb = this.FindName(string.Format("textBox{0}", number)) as TextBox;

        MessageBox.Show(tb.Text);
    }
于 2013-06-17T09:31:12.370 回答
0

我建议你使用字典。处理字典可以简化您的生活。我建议看这里

于 2013-06-17T09:19:09.800 回答