1

データベースからデータを取得し、それをデータグリッド (wpf) に表示します。ユーザーは、Enter をクリックした後、テキスト ボックスからクイック検索 (フィルター) を行うことができます。このイベントを使用して、ボタン -Enter- クリックを処理します (OnSearch - このイベントは、検索ボタンがクリックされるか、Enter キーが押されるたびに生成されます)。

問題は、ユーザーが何も記述しない場合、 Enter-Button をクリックしてもイベントが開始されないことです。どうすればそれを機能させることができますか

   public MainWindow()
   {
       InitializeComponent();
       //m_txtTest is a SearchTextBox
       m_txtTest.OnSearch += new RoutedEventHandler(m_txtTest_OnSearch);    
   }

   void m_txtTest_OnSearch(object sender, RoutedEventArgs e)
   {
      //to get the entered string
      SearchEventArgs searchArgs = e as SearchEventArgs;
      ....
      ....
      ....
      ....
   }
4

1 に答える 1

0

したがって、ユーザーが何かを入力してEnterキーを押すと、イベントを処理するテキストボックスになります。

テキストボックスにフォーカスがなく、イベントを処理できないにもかかわらず、何も入力しない場合。

私がすることは、ウィンドウまたはグリッドで検索するためのイベントを作成することです。

このようなもの

this.OnPreviewKeyDown += new OnPreviewKeyDownEvent;

http://msdn.microsoft.com/en-us/library/ms748948.aspx

このように考えることができます

ウィンドウにフォーカスがあります

->グリッドにフォーカスがあります

-->テキストボックスにフォーカスがあります

最後に焦点を当てたもの (または最も内側の要素、ケーキのようなものだと考えてください) は、イベントを最初に見るものになります。その UI 要素にそのイベントが登録されている場合は、それが処理されます。

テキストボックスはフォーカスされていないため、イベントは表示されません

于 2013-08-21T15:30:48.350 に答える