2017-07-12 4 views
-1

私はC#のチャートコントロールを.netフレームワーク用にコーディングしています。私は基本的に片側に名前を書いて、コントロールの実際のグラフ部分に対してもう片方に長方形を描く分割パネルを持っています。しかし、私は下にスクロールするたびに、パネルのビューから外れる矩形の部分を消去することを認識しました。これをどうやって防ぐのですか?下にスクロールしたときにパネルが描画した長方形を消去しないようにするにはどうすればよいですか?

2番目のパネルのスクロールバーをどのようにして両方にするのですか。私はこの物のいくつかをかなり新しくしているので、ここに何かがかなり初歩的であるか、すでに答えられていれば謝る。御時間ありがとうございます!

+0

あなたはあなたの視野の外に描画するはずがありません。私が誤解している場合、あなたの問題を示す[投稿コード](https://stackoverflow.com/help/mcve)が必要です。 –

+0

私は外から見ていない。私はパネルに描いていますが、次にスクロールダウンして、長方形を見えなくします。問題は、バックアップをスクロールすると、図面が消えることです。 –

+0

描画コードを表示してください!私たちがあなたが実際にやっていることを見ないと、どうすれば私たちを助けることができますか? (私はあなたがCreateGraphicsではなく、Paintイベントを使用していることを願っています!?!?) – TaW

答えて

0

スクロールに関するご質問に対する回答は、実際に描画の問題を解決します。解決方法は、AutoScrollがtrueに設定された3番目のパネルを追加することです。次に、既存の2つのパネルをその中に置きます。ドッキングしないでください。むしろフルサイズに設定してください。親パネルのスクロールバーは、両方向にスクロールし、必要に応じて再描画を指示します。

this answerも参照してください。 Panelから独自のクラスを派生させ、それを引き出す方が良いでしょう。

今後の参考として、AutoScrollパネルで直接描画する場合は、TranslateTransformを使用してスクロールを考慮してください。これは私の描画問題を解決します:

private void Panel1_Paint(object sender, PaintEventArgs e) { 
    e.Graphics.TranslateTransform(panel1.AutoScrollPosition.X, panel1.AutoScrollPosition.Y); 

    // draw something... 
} 
関連する問題