問題タブ [windows-controls]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - コントロールの境界内のカーソル
このイベントはから呼び出されます
と
(Winform アプリケーション)
カーソルがツールストリップではない場合を知りたいです。ただし、カーソルがどこにあるかに関係なく、上記のコードは同じ結果を返し続けます。
このコードは、ツールストリップのボタンまたはコンテキスト メニューのボタンから呼び出されるイベント ハンドラーにあります。コンテキストメニューで呼び出された場合、ユーザーは現在のマウスポイントを使用したいと考えています。それ以外の場合は、ユーザーが必要なポイントをクリックしてもらいたい
助言がありますか?
c# - タブでフォーカスを受け取るのに間に合うようにWinFormボタンを有効にする方法
Visual Studio 2010、C#
がComboBox
に設定されており、DropDown
はからのものです。ユーザーは、正しいエントリが得られるまでデータをキー入力します。データがリスト項目の 1 つと一致するまで、コンボボックスの横のボタンは無効になります。AutoComplete
SuggestAppend
AutoCompleteSource
ListItems
ユーザーがタブ キーを押すと、オートコンプリート機能は現在の提案を受け入れます。また、有効になっているタブ シーケンス内の次のコントロールに移動します。もちろん、無効なボタンに移動したいので、エントリを検証したらすぐに有効にする必要があります。
問題は、私が試したイベントのどれも、PreviewKeyDown
処理されてフォーカスを受け取るのに間に合うようにボタンを有効にできないことですLostFocus
。SelectedIndexChanged
常に有効になっているタブ オーダーの次のボタンに移動します。
ボタンを有効のままにして、押すのが早すぎるとエラーが発生するようにする準備ができていますが、そのようにしたくありません。また、これらのコントロールがいつフォーカスを受け取るかを追跡するために特別なモード フラグを設定する必要もありません。検証は普通のことのようですが、私は立ち往生しています。
ユーザーが一致したときに が機能した場合SelectedIndexChanged
、これは簡単です。ボックスがクリアされた場合や、入力された一致が見つかった場合には発生しません。
c++ - 作成後にタブ コントロールのスタイルを変更するにはどうすればよいですか?
CommCtrl.h からのタブ コントロールを含むWindows フォーム ( WPF フォームではない) があります。ドキュメントによると、コントロールが作成された後、「スタイル」を TCS_BUTTONS に変更できるはずです。残念ながら、それを行う方法の例は見つかりません。これを行うためにC++またはVB6コードへの参照を提供できる人はいますか?
具体的には、ネイティブの MS タブ コントロールをラップする PowerBuilder 11.5 を使用しています。PowerBuilder は TCS_BUTTONS スタイルを公開していませんが、生のメッセージを送信してスタイルを変更し、この PowerBuilder の制限を回避する方法を探しています。
wpf - WPF、Windows フォームの自動展開/折りたたみ可能なコントロール
Visual Studio では、マウスをソリューション エクスプローラー ウィンドウに合わせると、自動的に展開されます。マウスを離すと、ウィンドウは自動的に折りたたまれます。また、ウィンドウにはピンが付いているので、ピンで留めることができます。そのようなコントロールが WPF や Windows フォーム、またはオープン ソースで利用できるのだろうか? 私は自分のプロジェクトでそのようなものを持ちたいです。ありがとう
c# - Windows コントロールのテキスト ボックスからテキストを取得する方法は? それがテキストボックスであることをどのように知ることができますか?
管理されていないスタンドアロン アプリケーションに属する必要な Windows コントロールの正しいハンドルを見つけるために、spy++ を使用しました。spy++ の「プロパティ インスペクター」は、このウィンドウには子 (または親) ウィンドウがないことを示していることに注意してください。
次のコードを使用して、ウィンドウの名前を取り戻すこともできました。
このウィンドウには、タイトルよりも多くの情報があり、それが WM_GETTEXT で返されるように見えるすべてです (長さの値を 200 に変更しても役に立ちませんでした。いずれにせよ、ロング ショットでした)。
次に、UI オートメーションを使用して別のアプローチを試みました。
しかし、私はこのエラーを返しました:
タイプ 'System.InvalidOperationException' の未処理の例外が UIAutomationClient.dll で発生しました
追加情報: サポートされていないパターン。
さらに、Microsoft Inspect.exe も使用してみましたが、UI オートメーションと MSAA モードの両方で、ウィンドウ内のテキストにフォーカスできませんでした。
UI Automationでデータを取得できないということですか?? または、間違ったメソッド/タイプを使用する必要がありますか?
GetWindowText、WM_GETTEXT、または UI オートメーションを使用する以外に、このウィンドウからデータを取得する別の方法はありますか??
私はこのようなことにはかなり慣れていませんが、学ぶために最善を尽くしています。さらに、私は現在リードを持っていないので、役立つコメント/回答は大歓迎です!! 回答する場合は、役立つキーワードを必ず含めてください。そうすれば、あなたのソリューションについて詳しく知ることができます
c++ - Win32 - エディット コントロールへのテキストの追加
ダイアログ ボックス内の編集コントロールにテキストを追加しようとしています。_tcscat_s を正しく追加できません。クラッシュし、バッファが小さすぎるか、null で終了する文字列について何かを言います。
autoit - AutoIT に使用する ControlID の設定
Windows アプリの自動機能テストを実行しようとしていますが、AutoIT を手に入れました。ほとんどの (すべてではないにしても) 標準の Windows アプリケーションには、コントロール ID が設定されているようです。残念ながら、Finder ツールを使用してマウスをホバーすると、コントロール ID フィールドが空白になります。アプリケーション (C で記述) が各要素に ID を設定していないように見えますか?
私は XCode の UI Automation for iPad アプリを使用しており、「setAccessibilityIdentifier」を使用して各フィールドを一意に識別しています。Windows アプリケーションに相当するものを見つけようとしています。
AutoIT は正しいツールでさえあるのでしょうか? 私のテストはすべて計算ベースです。したがって、2 つの入力フィールドと 1 つの出力を想定できます。したがって、ユーザーが 5 と 2 を入力して [追加] をクリックした場合、出力が 7 かどうかを確認する必要があります。したがって、各要素を一意に識別する必要があります。
また、要素のグループがあることに気付きました。マウスをグループの上に置くと、クラス名として「Static」が表示され、各要素にアクセスしようとすると座標のみが変更され、Instance、ClassNameNN all などの他のすべてのコントロールが変更されます。同じまま。何か案は?
前もって感謝します!
編集: AutoIT フォーラムの連中のおかげで、グループの問題は修正されました - http://www.autoitscript.com/forum/topic/151055-autoit-basics/
アプリケーション側の C コードからコントロール ID を設定する方法を知る必要があります。
windows - IAutoComplete に強制的にデータセットを更新させますか?
IAutoComplete2 オブジェクトのデータセットとして使用するカスタム IEnumString を実装しています。
問題は、最初の文字が編集ボックスに入力されたときに IAutoComplete2 が IEnumString でリセットを呼び出すだけのように見え、その後のキーの押下中にデータセットが静的なままであるという事実 (およびその後のローカル フィルタリングの実行) に依存していることです。
IAutoComplete2 オブジェクトを削除してから、すぐに新しいオブジェクトを作成してコントロールにアタッチしようとしましたが、これにより shell32 でクラッシュが発生しました。
これは可能ですか?