仕事のカタマリにようこそ!  [ ログイン | ユーザ登録 ]
フォーラムから検索

機械用3D-CAD SolidWorks非公認のユーザサイトです
 
 
Web katamari.org
仕事のカタマリ
ホーム リンク集 ダウンロード フォーラム(掲示板) FAQ お問い合わせ









フォーラムニュース: 質問、相談カテゴリに「SolidWorks操作方法」に関するフォーラムを追加しました。(2003/11/27)
いらっしゃい、 ゲストさん. まずはこちら→ ログイン または 登録. 2024/05/06 - 03:35:27
ホーム ヘルプ 検索 ログイン 登録

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: Windows Formがモードレス時のフォーカス 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: Windows Formがモードレス時のフォーカス  (閲覧数 3469 回)
364
新人さん
*

オフライン

投稿: 2



I'm a llama!

プロファイルを見る メールアドレス
Windows Formがモードレス時のフォーカス
« 投稿日: 2012/12/12 - 21:19:07 »
引用して返信

はじめまして。

SW2011と2012向けにアドイン形式でカスタムツールを作成しています。
Windowsフォーム(ウインドウ)を開いてその上で各種設定を行うテキストボックスや
コマンドボタンを配置しているのですが、
tabキーにてフォーカスを移動させると、自作のWindowsフォーム内のボタンのところで
SolidwWorksの本体にフォーカスが移ってしまうようで、上下左右キーを押すと3Dモデルが動いてしまいます。
SW2011と2012のいずれの環境でも発生します。

モーダルフォームで開くようにすると問題なくtabキーでの操作やボタンのコマンド実行ができるのですが、
モードレスで実現したいと思っています。

アドインはSW SDKのテンプレートをベースにウインドウを開くようにした感じです。

VBAマクロで作成すれば可能のようですが、なんとか.NETでできればと思っています。

どなたかご存知でしたらご教示よろしくお願いします。

環境:SolidwWorks2011,2012
VB.NET VS2005

議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:Windows Formがモードレス時のフォーカス
« 返信 #1 投稿日: 2012/12/13 - 08:52:06 »
引用して返信

364さん、はじめまして!

問題の現象がなぜ起こっているのか、どういた原因か、といった事はわからないのですが、
確認と言うか、試してみては?と思う事があります。

まず、フォームのプロパティで「TopMost」をTrueにしてみてください。
これで、そのフォームは必ずウィンドウ最前面に表示されるようになります。

別件として、フォームのプロパティで「KeyPreview」をTrueにしてみてください。
フォームに乗っかっているコントロールにフォーカスがあっても、フォーム自身のキーイベントとして受け取れる。

「Tabキー」「フォーカス」と言ったキーワードで想定できそうな事を書きましたが、
全然的外れな回答かもしれません...。
サンプルプログラムを添付してもらうともうちょっと原因を調査できるかもしれません。
議長に報告する   記録済み
hisa
カタマリの王様!?
*****

オフライン

投稿: 507



PANDA-Z!!

プロファイルを見る WWW
Re:Windows Formがモードレス時のフォーカス
« 返信 #2 投稿日: 2012/12/13 - 09:38:07 »
引用して返信

364さん、はじめまして

多分、フォームの表示方法による問題だと思います。

APIヘルプで、Getting Started→Programming with the SolidWorks APIにある"Keystrokes and Accelerator Keys"を見て頂くと分かるのですが、Form.Show()メソッドで表示した場合はTabとEnterキーのイベントを受け取れないみたいです。
Application.Run(Form)メソッドでフォームを表示すると、正常にイベントを受け取れるようです。

ちなみに、Application.RunはSystem.Windows.Formsをインポートする必要があります。

以上、ご参考まで
議長に報告する   記録済み
364
新人さん
*

オフライン

投稿: 2



I'm a llama!

プロファイルを見る メールアドレス
Re:Windows Formがモードレス時のフォーカス
« 返信 #3 投稿日: 2012/12/14 - 20:03:56 »
引用して返信

Makoron様・hisa様

364です。早速のご回答ありがとうごいざいます。
APIヘルプに問題と対応策載っていましたか。。。
hisa様の仰せの内容で確認したところ、確かにApplication.Runで回避できると記載があり、
組み込んでみたところ、問題なく、Tab・Enterキーでの操作ができるようになりました。

また、今回、Enterキーでのフォーカス操作も必要だったため、Makoron様のKeyPreviewも有効にして
動作を確認することもできました。

とても助かりました。ありがとうございました!今後もよろしくお願いします。
議長に報告する   記録済み
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: Windows Formがモードレス時のフォーカス 前のトピック 次のトピック
ジャンプします: