次の方法で共有


TextBox を Click したときの MouseDown イベントの拾い方

質問

2007年12月25日火曜日 3:58

 

TextBox を Click したときの MouseDown イベントの捕らえ方に関して
  (以下は、Window >StackPanel > TextBox  という親子関係にしてある。)

[1]XAML を使用する場合
  

      <TextBox Name="textBox_1"  
     ・ ・ ・ ・ ・ MouseDown="textBox_1_MouseDown" />    

上記に対するハンドラー

   ① void textBox_1_MouseDown( sender object, RoutedEventArgs e )
                    この場合は、イベントに対応して、このハンドラーが呼び出されることは、
       確認できております。

 

   ② void textBox_1_MouseDown( sender object 
                                                  , MouseButtonEventArgs e )
       この場合は、呼び出されないのですが、どういうことなのでしょうか。

[2]XAML を使用しない場合

        この場合は、③④いずれもハンドラーが呼び出さるには至りません。

   ③ textBox_1.MouseDown
                       += new RoutedEventHandler(txb_MouseDown);
     void textBox_1_MouseDown( sender object, RoutedEventArgs e )

                       この組み合わせは、コンパイル段階でエラーになります。

   ④ textBox_1.MouseDown
                       += new MouseButtonEventHandler(txb_MouseDown);
       void textBox_1_MouseDown( sender object
                             , MouseButtonEventArgs e )

                       この組み合わせは、②と同様に呼び出されません。
       

デスクトップ・スタンドアロン・アプリケーションのみのアマチャプログラマーであり、個人的には、XAML は、実験用だけに使い、自分のライブラリーとアプリケーションは、XAMLを一切使用せず、C#コードのみで組み立てたいと思っております。
従って、[2]の場合の解決がつかないと困るのですが、宜しくお願いいたします(C# Express 使用)。

すべての返信 (2)

2007年12月25日火曜日 7:38 ✅回答済み

TextBoxのMouseDownイベントと基本的に取れない筈です。

 

http://msdn2.microsoft.com/ja-jp/library/ms750580(vs.80).aspx

参照。

 

[1]-丸1 でハンドラが呼び出されているとの事ですが、別な所から呼び出されたのではないでしょうか ?


2007年12月25日火曜日 11:12 ✅回答済み

 

**FC-Shiro 様

  ありがとうございました。ご紹介いただいたドキュメントで解決いたしました。**

** [1] ① の結果について、不要なコントロールを取り除いてシンプルにして
みましたら、**

なるほど、ハンドラは呼び出されなくなりました。これで前に進めます。

  -- 西方 --