在后面的代码中创建文本后使用文本框文本

时间:2020-05-01 12:35:28

标签: c# wpf

我有一个带有包装面板的WPF页面, 一个按钮可在包装面板中生成文本框,其中包含文本 和一个按钮以获取写入文本框的文本。 她是xaml的一部分:

<StackPanel>
        <WrapPanel Orientation="Horizontal" x:Name="WP1"
                   Height="200"/>
        <Button Content="Insert" Click="Button_Click" Margin="10"/>
        <Button Content="Get_TextBoxes_Text" x:Name="GetTextBoxes_Txt_btn"
                Click="GetTextBoxes_Txt_btn_Click" Margin="10"/>
    </StackPanel>

现在,当我每次单击第一个按钮时,它都会在包装面板中创建一个带有文本的文本框。假设我在按钮上单击了3次(但可能是1或2或10 ...)。

  private void Button_Click(object sender, RoutedEventArgs e)
    {
        TextBox t = new TextBox()
        {
            Text = "100",
            Padding = new Thickness(3),
            BorderBrush = Brushes.Black
        };
        WP1.Children.Add(t);
        // Let's imagine i've clicked 3 times on this button to create 3 textboxes. But the user will be able to click from 1 to 10 times, we don't know at this point.
    }

现在,当我单击第二个按钮时,我想以字符串形式连接我们创建的每个文本框文本,例如:

 private void GetTextBoxes_Txt_btn_Click(object sender, RoutedEventArgs e)
    {
        // How to get into a string the content of the 3 textboxes like :
        string text = first_TextBox.Text + secondTextBox.Text + thirdTextBox.Text //????
    }

但是,这当然不起作用,因为我创建的文本框没有“真实”名称。 我该如何处理? 谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用VisualTreeHelper来迭代控件的所有子级。对于每个def intro(): redirect = input("ARE YOU A REGISTERED USER? [Y/N] ") if redirect == "Y" : print("OK") else : print("gtfo") intro() exit = input("press any key to exit") ,您都可以获取并连接此示例文本:

TextBox