2017-02-06 25 views
0

我正在研究wpf應用程序,它包含主要Window.xamlDataGrid它和文章裏面的文章,我應該做的下一步,如果用戶選擇文章和新聞「/」,比我應該讓他編輯價格 - 解鎖領域與價格,當用戶完成後,他應該擊中輸入,之後,我應該檢查是輸入hitted,所以我可以更新該文章的新價格。如何檢測正斜槓和條件是否滿足檢查輸入密鑰C#WPF

首先,這就是我要查看的是「/」,因爲我無法爲這個按鍵正確對抗原始設備製造商,並且我擔心用戶在鍵盤上更改語言時會發生什麼,所以我這樣做了。

private void Window_PreviewTextInput_1(object sender, TextCompositionEventArgs e) 
     { 
      if (e.Text == "/") 
      { 

        if (globalTemp != null) 
        { 
         txtPrice.IsEnabled = true; 

        } 
      } 

     } 

我給oportunity用戶後改價,我應該在回車鍵更新文章的價格,所以我怎麼會這樣條件if (e.Text == "/")檢查後也進入點擊,因爲我看到有這不e.KeyTextCompositionEventArgs e ...

編輯:

也許我可以簡單地在此附上新的事件,所以其實我可能有兩個事件,第一個發現「/」和解鎖txtPrice,另有1如果輸入被按下,更新它,所以anot她的事件可能是這樣的:

private void txtPrice_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Key == Key.Return) 
    { 
    // UPDATE PRICE HERE 
    } 
} 

謝謝你們 乾杯

+0

你放「KeyDown」事件中的中斷點,並查看按下「OEM」正斜槓時事件代碼是什麼? – Abion47

+0

@ Abion47我怎麼能這樣做?我如何檢查「OEM」Fwd Slash的代碼?當我捕捉如果(e.Text ==「/」){我應該在這裏,爲哪個屬性閱讀「OEM」代碼}? –

+0

@ Abion47檢查我的問題的更新。 –

回答

1

處理的PreviewKeyDown事件來檢測ENTER按鍵和PreviewTextInput事件檢測「/」。

畢竟ENTER不是一個字符,「/」不是一個鍵,所以分開處理這兩個事件是完全合理的。

如果您要檢測的結合ENTER +「/」組合鍵,你可以使用跟蹤是否「/」按下右前輸入按下一個布爾字段:

private bool _slash = false; 
private void Window_PreviewTextInput_1(object sender, TextCompositionEventArgs e) 
{ 
    if (e.Text == "/") 
    { 
     _slash = true; 
     e.Handled = true; 
     //... 
    } 
    else 
    { 
     _slash = false; 
    } 
} 

private void Window_PreviewKeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Key == System.Windows.Input.Key.Enter && _slash) 
    { 
     // "/" + ENTER was pressed... 
    } 
} 
+0

這就是我所做的,但是我面臨的問題是,當我用「/」解鎖領域時,即使我不想在那裏看到該字符,也會在該字段中寫入該字符,因爲我們正在談論價格,所以我想我應該寫在那裏e.Handled = true;即使我沒有太多的經驗,說實話,我不知道那是做什麼,如果我這樣做,我會被禁止在解鎖的領域進入任何東西,(僅僅因爲這個e.Handled =真;)..我該如何解決這個隊友? :/我認爲你不需要Window_PreviewKeyDown事件,你應該直接附加到unl。領域? –

+0

只有在e.Text等於「/」的情況下,才能將TextCompositionEventArgs的Handled屬性設置爲true。 – mm8

+0

是啊,e.Handled財產是非常有用的,他做了事情,所以隊友可以給我們幾句關於你的經驗,我需要理解爲什麼e.Handled幫助我們,當它是在第一個條件,我把它放在在我的私人無效Window_PreviewTextInput_1開始,我無法在我的文本框中輸入任何內容..所以隊友請給我們幾句話,你的工作是非常好的隊友!我真的很感激它! –

相關問題