C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.70210 の関連記事表示

<< 0 >>
■70210  テンキーフォームを呼び出したい
□投稿者/ C#研究者 -(2014/03/01(Sat) 08:45:57)

    分類:[C#] 

    実行環境 Windows7 32bit , Windows8 64bit
    開発環境 Windows7 32bit VisualStudio C#2010

    テンキーのフォームをexe形式で作成したので、テキストボックス入力時などに呼び出したいと思います。

    ソフトウェアキーボードの呼出しは各コントロールのイベントを追加して追加するのでしょうか。
    それともなにかまた別の方法があるのでしょうか。

    ・たとえばメモ帳を立ち上げた時やエクセルを立ち上げたときに呼び出したいのですがそのようなことは可能なのでしょうか。
親記事 /過去ログ120より / 関連記事表示
削除チェック/

■70218  Re[1]: テンキーフォームを呼び出したい
□投稿者/ C#研究者 -(2014/03/03(Mon) 18:16:28)
    GotKeyboardFocusというイベントを見つけましたが、
    これはWPFのイベントでした。

    デスクトップアプリケーションではどのようにすればイベントをつかまえられるのでしょうか。
記事No.70210 のレス /過去ログ120より / 関連記事表示
削除チェック/

■70226  Re[1]: テンキーフォームを呼び出したい
□投稿者/ Azulean -(2014/03/03(Mon) 22:25:06)
    2014/03/03(Mon) 22:25:34 編集(投稿者)

    No70210 (C#研究者 さん) に返信
    > ソフトウェアキーボードの呼出しは各コントロールのイベントを追加して追加するのでしょうか。
    > それともなにかまた別の方法があるのでしょうか。

    単に自分のアプリケーションだけであれば、それぞれのコントロールにイベントを設定すればよいでしょう。
    1つずつ設定するのが手間であれば、Controls から列挙し、イベントを割り付けるのも手です。


    > ・たとえばメモ帳を立ち上げた時やエクセルを立ち上げたときに呼び出したいのですがそのようなことは可能なのでしょうか。

    すぐにレスがつかなかった主要因は、この部分でしょう。
    基本的に別のアプリケーションのウィンドウの動きを取得する方法は、.NET の標準クラスライブラリにはないとお考えください。
    つまり、「イベントで何とかならない」のです。

    考えられるとしたらグローバルフックですが、これを C# で作ることはできませんので、C# と限定した環境では手が打てません。
    また、グローバルフックでウィンドウの検知という手法では WPF アプリケーションをカバーできない可能性があります。


    No70218 (C#研究者 さん) に返信
    > デスクトップアプリケーションではどのようにすればイベントをつかまえられるのでしょうか。

    細かいですが、WPF アプリケーションもデスクトップアプリケーションに位置づけられますのでご留意ください。
記事No.70210 のレス /過去ログ120より / 関連記事表示
削除チェック/

■70229  Re[2]: テンキーフォームを呼び出したい
□投稿者/ C#研究者 -(2014/03/04(Tue) 00:11:58)
    なるほど、わかりました。
    地道にイベントを追加していきます。ありがとうございました。
記事No.70210 のレス / END /過去ログ120より / 関連記事表示
削除チェック/

■70255  Re[3]: テンキーフォームを呼び出したい
□投稿者/ C#研究者 -(2014/03/04(Tue) 16:24:27)

    地道にイベントを追加していこうかとおもったのですが、やはり数が多く手こずっています。

    イベント挿入対象のプロジェクト(.exe,dll)ファイル、フォームファイルがかなりあるため、
    フォームごとにControls から列挙し、イベントを割り付けて挿入するのは大変です・・・。

    アプリケーション全体、もしくはプロセスに対してイベントを登録する方法はあるのでしょうか。
    それでは失礼します。
記事No.70210 のレス /過去ログ120より / 関連記事表示
削除チェック/

■70259  Re[4]: テンキーフォームを呼び出したい
□投稿者/ Azulean -(2014/03/04(Tue) 22:46:41)
    2014/03/04(Tue) 22:48:53 編集(投稿者)

    近しいのはこれでしょうか。
    http://msdn.microsoft.com/ja-jp/library/system.windows.forms.application.addmessagefilter

    ただし、この層になってくると、イベントという考え方ではなく、Windows の低レベル層に存在しているメッセージループの考え方になってきますので、どのようなウィンドウメッセージが飛んでくるか、そのメッセージの引数が何かを理解する必要があります。


    No70255 (C#研究者 さん) に返信
    > アプリケーション全体、もしくはプロセスに対してイベントを登録する方法はあるのでしょうか。

    基本的にコントロール、フォームのイベントはそれぞれのウィンドウに対応したオブジェクトがウィンドウメッセージに応じて提供するものです。
    ウィンドウを問わずに処理するイベントというものは基本的にないと考えてください。
    (そういう仕組みになると、イベントではなく、内部で隠蔽されているウィンドウメッセージレベルの対応となる)
記事No.70210 のレス /過去ログ120より / 関連記事表示
削除チェック/

■70260  Re[5]: テンキーフォームを呼び出したい
□投稿者/ tocs -(2014/03/04(Tue) 22:55:37)
>
    > ■No70255 (C#研究者 さん) に返信
    > フォームごとにControls から列挙し、イベントを割り付けて挿入するのは大変です・・・。

    イベントの内容に依るとは思いますが、動的にメソッドを追加するとかT4で自動生成するとか。
    http://msdn.microsoft.com/ja-jp/library/bb126445.aspx
記事No.70210 のレス /過去ログ120より / 関連記事表示
削除チェック/

■70262  Re[6]: テンキーフォームを呼び出したい
□投稿者/ C#研究者 -(2014/03/05(Wed) 10:58:55)

    皆様回答ありがとうございます。
    ちょっと私には難しそうなので

    現在、タイマのように簡単に使えるようにコンポーネント化することを検討しております。
    でも、今回はフォームのコントロールに対してイベントを追加するので
    親フォームの参照が必要になってしまうのですけれども、
    こういうのはコンポーネントにとって良くないのでしょうか。
    よくなければ似たような方法を教えていただきたいと思います。


記事No.70210 のレス /過去ログ120より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -