ここに私のソースコードがあります。私はボタンを押したままマウスを動かすと、パネル上に描画された線を表示するビットマップを取得できないようです。私の9歳の娘のためにアプリを完成させるためにコードを完成させるために挫折して誰かを探しています。事前にありがとうございます...ビットマップを使用して描画しようとすると、C#paintプログラムは画面上に線を作成しません。
namespace TV_PAINT
{
public partial class ALANA_PAINT : Form
{
Graphics g;
Pen p = new Pen(Color.Black, 7);
Point sp = new Point(0, 0);
Point ep = new Point(0, 0);
int m = 0;
Bitmap BP;
public ALANA_PAINT()
{
InitializeComponent();
tb1.Text = p.Width.ToString();
BP = new Bitmap(pnl1.ClientSize.Width, pnl1.ClientSize.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
}
private void closeButton_Click(object sender, EventArgs e)
{
pnl1.Dispose();
p.Dispose();
this.Close();
}
private void clearButton_Click(object sender, EventArgs e)
{
//pnl1.Invalidate();
p.Color = System.Drawing.Color.Black;
p.Width = 7;
tb1.Text = p.Width.ToString();
//pnl1.Invalidate();
}
private void pnl1_MouseDown(object sender, MouseEventArgs e)
{
sp = e.Location;
if (e.Button == MouseButtons.Left)
m = 1;
if (e.Button == MouseButtons.Right)
m = 1;
}
private void pnl1_MouseMove(object sender, MouseEventArgs e)
{
if (m == 1)
{
ep = e.Location;
//g = pnl1.CreateGraphics();
Graphics g = Graphics.FromImage(BP);
g.DrawLine(p, sp, ep);
}
sp = ep;
}
private void pnl1_MouseUp(object sender, MouseEventArgs e)
{
m = 0;
}
ありがとうございます。私はそれがスクリーンから動かされるとき、または何かがそれの上に置かれるとき、パネルをクリアしないペイントプログラムを作ろうとしている。だから私は、ビットマップを実装し、パネルの代わりにビットマップに描画するように言われました。私の次の目標は、作成した画像を保存したい場合は、ビットマップをファイルに保存することです。これが意味をなさないことを願っています... –
もしそうなら、私はあなたがこのようなことをすることができると思いますhttp://stackoverflow.com/questions/26936109/how-do-i-save-a-winforms-panels-drawing-content-to -a-file –
もう一度ありがとうございます。私は今それを読んでいる... –