0

たとえば、私のOnPaintがlengthと呼ばれる変数と同じ長さの線を描画するとします。また、色と呼ばれるブール値があります。boolがtrueの場合、線は赤になり、falseの場合、線は黒になります。画面に2つの異なる色と異なる長い線を表示することは可能でしょうか(私の質問は、OnPaintは表面全体を再描画しますが、一部の描画をそのままにしておくことは可能ですか)。

質問が少し紛らわしいかもしれないことを私は知っています。

4

2 に答える 2

0

これにより、isValid == trueかfalseかに応じて、長さと色が異なる2本の線が描画されます。線は画面に残ります。あなたの質問の他の部分については、アレックスは正しい方法を提供しました。

using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            bool isTrue = false;

            if (isTrue == true)
            {
                g.DrawLine(Pens.Red, new Point(0, 50), new Point(150, 50));
            }
            else
            {
                g.DrawLine(Pens.Blue, new Point(0, 50), new Point(300, 50));
            }

            g.Dispose();
        }
    }
}
于 2013-01-11T10:02:07.517 に答える
0

私の知る限り、そのような機能はありません。

ただし、独自の OnPaint メソッドを (base.OnPaint() を呼び出さずに) 作成し、このロジックを統合することはできます (必要な要素だけを描画することで、何かが残る可能性があります)。

于 2013-01-11T09:37:38.730 に答える