4

自動スクロール パネル内にカスタム コントロールがあります。ユーザー コントロールがパネルの幅を超えると、スクロール バーが表示されます。その後、任意の距離をスクロールし、コントロールをマウスダウンすると、スクロールバーが 0 に戻ります。その理由を知っている人はいますか? スクロールバーの値をどこでも変更しようとしていないと確信しています...

ありがとう

編集:これは、最初にクリックしたとき、期待どおりに動作するたびに、一度だけ発生するように見えます

編集 2: 新しいウィンドウを表示してから C# ウィンドウに戻ったときにも発生します。

4

2 に答える 2

1

コンテナよりもはるかに幅の広いコントロール ( のようなTextBox) があり、その端までスクロールしてからコントロールをクリックすると、コントロールの にスクロールして戻りますLocation

クリックされたコントロールはフォーカスを獲得し、スクロールは自動的に行われます。これは winform の標準的な動作です。

それを無効にしたい場合SetAutoScrollPositionは、コンテナーをインターセプト ( ScrollableControl) するか、別のメカニズムを使用して元の位置に戻す必要があります。

コントロールに既にフォーカスがあり、スクロールした場合、もう一度クリックしてAutoScrollPositionもコンテナーの は変更されません。

于 2011-02-13T13:30:44.223 に答える