2017-02-18 7 views
0

重複した質問であるかどうかわかりませんが、StackOverflowで回答が見つかりませんでした。Winformsでスクロールバーの値をパーセントで移動する方法は?

問題文:私はサードパーティの画像ビューアとPDFビューアコントロールを持っています。 C#WinFormsページに埋め込まれています。スクロールバーの動きをパーセンテージで制御したい。たとえば、「下」キーを押すと、垂直スクロールバーがページの高さの20%に移動します。私は以下のロジックで試してみました:

_imageViewer.VerticalScrollBar.Value += _imageHeight X ZoomFactor X .20 
OR 
_imageViewer.VerticalScrollBar.Value += pdfViewer1.VerticalScroll.Maximum X .20 

どちらの方法でも正確な結果が得られません。私はまた、スクロールバーの親指のサイズを考慮する必要があると思うが、私はその価値をどのように得ることができるのか分からない。

画像の高さや幅のパーセンテージでスクロールバーを移動する方法を教えてください。

+1

スクロールバーは、大きな毛むくじゃらのユーザビリティの問題を抱えています。親指によって引き起こされるサイズはゼロではありません。上方向にスクロールすると、親指の上端がその位置を示すとみなされます。下方向にスクロールすると、親指の下が関連します。だから正確にいつ上から下に切り替えるのですか?標準的な答えはありません。スクロールバーの位置からサムのサイズを引いた値を引いた値を100%にすることはできません。サムのサイズは、ページサイズと同じにする必要があります。 –

答えて

1

SmallChangeプロパティをScrollBarに割り当てることができます。ドキュメントで説明されているように、ユーザーが矢印キーのいずれかを押すかスクロールバーボタンの1つをクリックすると、プロパティで設定された値に従ってValueプロパティが変更されます。

例:

vScrollBar1.SmallChange = ((vScrollBar1.Maximum - vScrollBar1.Minimum) * 20/100); 
+0

'Minimum = 0'と' Maximum = imageHeight'を設定してから、私がしたように 'SmallChange'を設定することで、上/下矢印をクリックするたびに' 20% 'スクロールできます。 –

+0

私のために働いていません。画像の高さ= 615、ズーム= 1.32、VerticalScrollbar.Maximum値が自動的に設定され、1087であることがわかりました。(画像の高さX Zoom)に設定されていません。画像がズームインまたはズームアウトされているときに、コードがどのように動作しているかを教えてください。 –

+0

以下のロジックで動作しました:VerticalScroll.SmallChange = VerticalScroll.Maximum - VerticalScroll.LargeChange)* 20/100 –

関連する問題