UI オートメーション コントロールでのスクロール

Silk4NET では、UI オートメーション コントロールに応じて、2 種類のスクロール方法とプロパティを提供します。
  • 1 つめの種類のコントロールには、それ自体でスクロール可能なコントロールが含まれ、スクロールバーは子として明示的に表示されません。たとえば、コンボ ボックス、ペイン、リスト ボックス、ツリー コントロール、データ グリッド、オート コンプリート ボックスなどがあります。
  • 2 つめの種類のコントロールには、それ自体ではスクロール不可能なコントロールが含まれ、スクロール用にスクロールバーが子として表示されます。たとえば、テキスト フィールドがあります。
Silk4NET にこのような違いがあるのは、UI オートメーション コントロールがこの 2 通りの方法でスクロールを実装するためです。

スクロールをサポートするコントロール

この場合、スクロール方法とプロパティは、スクロールバーを含むコントロールで使用できます。したがって、Silk4NET ではスクロールバー オブジェクトは表示されません。

以下のコマンドでは、リスト ボックスが一番下までスクロールされます。
listBox.SetVerticalScrollPercent(100)
以下のコマンドでは、リスト ボックスが 1 ユニットずつ下方へスクロールされます。
listBox.ScrollVertical(ScrollAmount.SmallIncrement)

スクロールをサポートしないコントロール

この場合、スクロールバーが表示されます。コントロール自体で可能なスクロール方法とプロパティはありません。水平スクロールバーと垂直スクロールバーの各オブジェクトを使用すると、対応する API 関数でパラメータとして増分または減分、または最終位置を指定することでコントロール内をスクロールできます。増分または減分として ScrollAmount 列挙の値を使用できます。詳細については、MSUIA のドキュメントを参照してください。最終位置は、オブジェクトの位置に関連し、アプリケーション設計者によって定義されます。

以下のコマンドでは、テキスト ボックス内の垂直スクロールバーが 15 の位置までスクロールされます。
 textBox.UIAVerticalScrollBar().ScrollToPosition(15)
以下のコマンドでは、テキスト ボックス内の垂直スクロールバーが一番下までスクロールされます。
 textBox.UIAVerticalScrollBar().ScrollToMaximum()