2014-01-28 17 views
0

在Windows商店應用程序(快速2013 for windows)中,我創建了一個文本框。現在我想捕獲或檢索用戶輸入的文本以進一步操作(具體來說,將用戶文本分配給字符串)。 我嘗試這樣做:從視覺工作室中的文本框中檢索文本(windows商店應用程序)

string input = InputBox.Text; 

在textbox.But事件處理這似乎並沒有工作。

任何幫助,歡迎。

<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

您是否將您的textBox1或其他任何東西改名爲InputBox? –

+0

*似乎不起作用*您能否詳細說明? – Raptor

+0

我想詳細說明你的意思是錯誤:「名稱'InputBox'在當前上下文中不存在。」 –

回答

1

XAML中刪除框TextChanged = 「InputBox_TextChanged」 何地,你想用你的文本框的文本中使用InputBox.Text。 InputBox_TextChanged將觸發您在文本框中輸入的每個符號,因此在text_changed中獲取文本並不是一個好主意。

2

這裏的問題是你在事件內部創建了字符串,所以在事件結束後它會被擦除。 你可以做的是在表單類中創建一個字符串,並在文本框事件中設置它的值。

private string input = string.Empty; 

private void InputBox_TextChanged(object sender, TextChangedEventArgs e) 
{ 
    input = InputBox.Text; 
} 
+0

不是。這兩個解決方案都沒有工作。要清楚的是,我不是在Windows窗體上工作,而是在windows上使用express 2013 for windows(上述問題)。還有一件事,我試圖在複選框的事件處理程序中使用textblock(而不是文本框,在我的應用程序中的另一個元素),並且這是相同的錯誤。我覺得這些元素是彼此不可見的(他們可能被宣佈爲私有)。我仍處於學習的開始階段,所以我無法準確確定。 –

+0

更新:我設法弄清楚發生錯誤的位置-------我有一個名爲'OkButton'的複選框。我採用了@Marciano的第一個解決方案。但只要我爲複選框創建事件處理程序,就會出現波形。在創建複選框的事件處理程序之前,在採用sol之後,應用程序運行正常。如果有人能告訴我怎麼做,我會很樂意分享截圖和更多的代碼。 –

相關問題