• スクロールバーの位置がリセットされてしまうメソッド
Focus()

  • パネルのスクロールバーの初期位置の値を設定したい
タイマーイベントを利用してスクロールバーを任意の位置へ移動させる
<呼び出し側>
            myTimer.Tick += new EventHandler(TimerEventProcessor);
           myTimer.Interval = 100;
           myTimer.Start();
<イベント>
       //Panel2のスクロールバーを内部ピクチャの中心に合わせる処理
       void TimerEventProcessor(object myObject, EventArgs myEventArgs)
       {
           myTimer.Stop();
           panel2.AutoScrollPosition = new Point(
               (pictureBox2.Width - panel2.ClientRectangle.Width) / 2,
               (pictureBox2.Height - panel2.ClientRectangle.Height) / 2);
           myTimer.Dispose();
       }


  • パネルのスクロールバーを動かすヘルプ関数(キー入力などで移動させたい用)
       /// <summary>
       /// スクロールの補助関数
       /// </summary>
       /// <param name="panel">スクロールさせたいパネルコントロール</param>
       /// <param name="x">加算するX値</param>
       /// <param name="y">加算するY値</param>
       void ScrollHelper(ref Panel panel, int x, int y)
       {
           panel.AutoScrollPosition = new Point(-panel.AutoScrollPosition.X + x, -panel.AutoScrollPosition.Y + y);
       }
最終更新:2012年09月06日 16:12