在Windows商店应用程序(表达2013 for Windows)中,我创建了一个文本框。现在我想捕获或检索用户输入的文本以进行进一步的操作(具体来说,将用户文本分配给字符串)。 我试过这个:
string input = InputBox.Text;
在textbox的事件处理程序中。但这似乎不起作用。
欢迎任何帮助。
<TextBox Text="TextBox"
x:Name="InputBox"
Grid.Row="1"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Width="402"
Height="48"
FontFamily="Arial Black"
FontSize="28"
FontWeight="Bold"
VerticalContentAlignment="Center"
HorizontalContentAlignment="Left" Margin="0,77,0,84"
TextAlignment="Left" TextChanged="InputBox_TextChanged"
/>
C#代码如下:
private void InputBox_TextChanged(object sender, TextChangedEventArgs e)
{
string input = InputBox.Text;
}
答案 0 :(得分:2)
这里的问题是你在事件中创建了字符串,所以它会在事件结束后被删除。 你可以做的是在表单类中创建一个字符串,并在文本框事件上设置它的值。
private string input = string.Empty;
private void InputBox_TextChanged(object sender, TextChangedEventArgs e)
{
input = InputBox.Text;
}
答案 1 :(得分:1)
从xaml中删除TextChanged =“InputBox_TextChanged”,并在任何想要使用TextBox文本的地方使用InputBox.Text。 InputBox_TextChanged将触发您在文本框中键入的每个符号,因此在text_changed中获取文本不是一个好主意。