2

スピナーの値を取得して、C# の AutomationElement を介して正しく入力されたことを確認しようとしています。私が現在行っていることはTryGetCurrentPattern、以下に示すようにそれを取得しようとしていますが、スピナーに別の値 (1 など) が表示されているにもかかわらず、値に対して 0.0 しか返されません。

if (spinnerAutoEle.TryGetCurrentPattern(RangeValuePattern.Pattern, out pattern)) 
{
    var valueRangePattern = (RangeValuePattern)pattern;
    return valueRangePattern.Current.Value;
}

valueRangePattern.Currentまた、スピナーが制限されているにもかかわらず、最大値と最小値のフィールドを見ると、常に 0.0 になっていることに気付きました。またValuePattern、スピナーから出ようとしましたが、if ステートメントには入りませんif (spinnerAutoEle.TryGetCurrentPattern(ValuePattern.Pattern, out pattern))。このようにスピナーから数値を取り出すことは可能でしょうか?

4

3 に答える 3

0

ハンドラーの後にスピナーIDをハンドラーに取得すると、プロセスIDを使用してメインウィンドウのタイトルを取得するときに、スピナーのメインウィンドウのタイトルを取得します。主な勝利のタイトルはIDに基づいています実際にはスピナーにもIDがあり、常識はitysテキストですタイトル

于 2016-06-28T10:29:48.177 に答える
0

Windows SDK に付属の検査ツールを使用して、スピナーの UI オートメーション ツリーの構造を検査することをお勧めします。特定のインスタンス (たとえば、スピナー コントロールの一部の Winforms 実装) では、UI オートメーションのマネージ バージョンとネイティブ バージョンのどちらを使用しているかに応じて、スピナー コントロールがオートメーションの編集ボックスと 2 つのボタンから構成される場合があることがわかりました。編集ボックスと値パターンを介して実際の値にアクセスするツリー。これは非常に遅い答えだと思いますが、おそらく誰かを助けることができます。

于 2016-06-28T07:46:30.440 に答える