2

コントロールはTrackBar、ページアップ/ページダウン/矢印アップ/矢印ダウンによって変更されたときとは反対の方向に変更されます。

これについては、こちらで詳しく説明しています: 上矢印/PgUp でトラックバーの値が減少するのはなぜですか?

この動作を修正/元に戻す方法はありますか?

4

2 に答える 2

2

Idle_Mind の回答は適切で、実際に役に立ちましたが、欠点Scrollが1つありValueChangedます。だから、ここに私のバージョンがあります:UpDownPageUpPageDown

public class ProperTrackBar : TrackBar
{

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
        int oldValue = this.Value;
        switch (keyData)
        {
            case Keys.Up:
                this.Value = Math.Min(this.Value + this.SmallChange, this.Maximum);
                break;
            case Keys.Down:
                this.Value = Math.Max(this.Value - this.SmallChange, this.Minimum);
                break;
            case Keys.PageUp:
                this.Value = Math.Min(this.Value + this.LargeChange, this.Maximum);
                break;
            case Keys.PageDown:
                this.Value = Math.Max(this.Value - this.LargeChange, this.Minimum);
                break;
            default:
                return base.ProcessCmdKey(ref msg, keyData);
        }

        if (Value != oldValue)
        {
            OnScroll(EventArgs.Empty);
            OnValueChanged(EventArgs.Empty);
        }
        return true;
    }
}
于 2017-08-23T08:28:22.243 に答える