2017-05-10 10 views
2

私のコードでは四角形を描いていますが、最大化しても通常は四角形が画面に対して大きすぎます。私はフォームのプロパティAutoScrollをtrueに設定しましたが、これは何もしないようです。私のフォームには矩形のペイントを除いて何もありません。どうすれば縦と横のスクロールを実装できますか?一人でControl/FormAutoScroll = trueを設定ペイントを使用するときにWinFormsで垂直スクロールバーと水平スクロールバーを実装する方法は?

PrintingDesignForm form = new PrintingDesignForm(); 

     form.Paint += (se, pe) => { 
      var r = new Rectangle(parameters.RectangleXPosition, parameters.RectangleYPosition, (int)Math.Ceiling(parameters.RectangleWidth) * 72, (int)Math.Ceiling(parameters.RectangleLength) * 72); 

      var brush = new SolidBrush(Color.FromArgb(255, 255, 204)); 

      pe.Graphics.FillRectangle(brush, r); 
      using (var pen = new Pen(brush.Color, 2)) 
       pe.Graphics.DrawRectangle(pen, r); 
     }; 

     form.WindowState = FormWindowState.Maximized; 
     form.Show(); 
+0

また、AutoScrollMinsizeを適切な値、つまり図面を保持するのに十分な大きさに設定する必要があります。描画するときはそれを知っておく必要があります。 – TaW

+0

@TaWデフォルトでは、AutoScrollMinsizeプロパティは0,0に設定されています。自動的にスクロールする必要がありますか? – Andrew

+0

いいえ、あなたのconrtolが(0,0);-)より小さい場合を除き - スクロールバーが提供しなければならないスペースの大きさを読み取ることができます。 – TaW

答えて

0

のみすべてのControlsはあなたがいずれかの意志ショーの親に/巣を追加ことを保証します必要に応じて表示されるスクロールバーで表示されます。

これは描画するものについては何も行いません。

描画をスクロール可能にするには、AutoScrollMinSizeを十分大きな値に設定する必要があります。

事前にわからない場合は、描画中にデータからそれらを特定できるはずです。

0
フォームのプロパティの設定で

自動スクロール= Trueの

+0

close but not quite .. – TaW

関連する問題