2010-08-03 82 views
0

我有2個文本框。第一個是可見的,第二個不是。 當第一個文本框觸發keyDown事件時,我想在第二個文本框上觸發相同的事件,所以它會像用戶在第二個文本框中輸入一樣反應。如何以編程方式在Silverlight中生成keyDown事件?

我該怎麼做?


編輯: 我知道你可以在Windows.Forums做到這一點,我希望它能夠在這裏也做。

我的目標是有2個文本框中包含不同的文本,但是當用戶在第一個文本框中鍵入某些內容時,應該會在第二個文本框中顯示相同的文本。

例子: 文字中第一個文本框:

<home> 
<number>75</number> 
<client>John</client> 
</home> 

文本在第二個文本框

<home> 
<number id="123">75</number> 
<client id="345">John</client> 
</home> 

現在,用戶在第一個文本框的一些新的文本,如:

<home> 
<number>150</number> 
<client>John</client> 
</home> 

現在這個新文本應該出現在第二個文本框中,如:

<home> 
<number id="123">150</number> 
<client id="345">John</client> 
</home> 

而這只是改變數值的一個例子。用戶還可以添加新元素,刪除它們,更改順序等。

我試圖與映射KeyEventArgs但我失去控制非標準鍵,如:「šđžćč<>」

+0

的問題的答案原樣看臺上;你不能。無論如何,你爲什麼要這麼做?也許還有另一種方法來實現你真正的目標。 – AnthonyWJones 2010-08-03 21:04:15

回答

0

不能模仿你似乎想要的方式鍵盤。

+0

好吧,我編輯了我的第一篇文章,以便更清楚我想要做什麼。 – Gapipro 2010-08-04 04:34:20

0

你需要的是添加一個事件處理程序到文本框中,並在該事件處理程序更新基於第一個,第二個文本框值,反之亦然。

TextChanged 

http://msdn.microsoft.com/en-us/library/system.windows.controls.textbox.textchanged(v=VS.95).aspx

private void FirstTextBox_TextChanged(object sender, RoutedEventArgs e) 
{ 
    SecondTextBox.Text = FirstTextBox.Text; 
} 
+0

不,你沒看到那些文本是不一樣的。第一個文本沒有屬性,第二個文本沒有屬性。像這樣複製文本在我的情況下不起作用。 – Gapipro 2010-08-04 05:03:32

+0

好的,但你仍然必須使用我認爲的事件處理程序。也許在事件處理程序中有一些正則表達式的魔法?只替換給定標籤之間的文本? – texmex5 2010-08-04 05:37:45

+0

標籤也可以改變,因此它的順序並不像它看起來那麼簡單。這就是爲什麼我希望在兩個文本框之間進行鍵同步。這是做到這一點的唯一方法。 – Gapipro 2010-08-04 05:45:30