다음은 내 소스 코드입니다. 버튼을 누른 채로 마우스를 움직일 때 패널에 그린 선을 표시하는 비트 맵을 얻지 못하는 것 같습니다. 실망스럽고 누군가를 찾고 코드 작성을 도와 주므로 9-yo 딸을위한 앱을 완성 할 수 있습니다. 사전에 감사드립니다 ...비트 맵을 사용하여 그리려고했기 때문에 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 –
다시 한번 감사드립니다. 나는 지금 그것을 읽고있다. .. –