0

C# アプリケーションの 1 つのウィンドウに多数のパネルがあり、水平用と垂直用の 2 つのスクロールバーを作成しました。これは私が現在持っているものです:

スクロールバーが 2 つある画像 http://www.simnet.is/elinnils52/scrollbar.jpg

私は1つの変数を持っています。それは、すべてのアイテムが必要とする高さの合計です。スクロール変更に関する私のコードは次のとおりです。

for (int i = 0; i < this._splitMainView.Panel2.Controls.Count; i++)
{
    this._splitMainView.Panel2.Controls[i].Location = new Point(
        3 - _scrollBarX.Value, 
        3 + (132 + 6) * (i - 2) - _scrollBarY.Value);
    this._splitMainView.Panel2.Controls[i].Refresh();
}

スクロールバーの最大値は、すべてのコンテナーの高さ、その間のスペース、および余分な数ピクセルの合計です。

写真からも分かる通り、見た目は良くありません。この場合の最大値が 50 ~ 100 ピクセル程度であっても、それでも 1000 ページの長さのように見えます。SmallChange と LargeChange を変更すると、スクロールバー自体は長くなりますが、最大ピクセルに達しません。ほぼ最後に到達し (SmallChange および LargeChange の値に応じて)、残り 5 ~ 29 ピクセルを残すことができます。そして、誰もが知っているように、半分を見るのは良くありません。

この障害を克服する方法、またはそれを実装するためのより良い方法を知っている人はいますか?

4

2 に答える 2

1

スクロールバーの最大値をオーバーフロー (可視領域の高さ - パネルの高さ) にしないのはなぜですか? 次に、パネルの上部をスクロールバーの値 * -1 に設定します。

于 2008-10-10T23:35:47.627 に答える