输入框块 system.drawing
Inputbox block the system.drawing
我正在尝试在表单上编写此功能:用户单击表单,输入框要求用户输入名称,然后在用户单击的表单中的位置绘制一个圆圈。我现在面临的一个问题是圆圈现在绘制在输入框出现的地方。我实际上有一个功能可以重新绘制表单上的每个圆圈,但它仍然不起作用。这是我的代码:
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
string ProvinceName;
System.Drawing.SolidBrush myBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Red);
System.Drawing.Graphics formGraphics;
formGraphics = this.CreateGraphics();
formGraphics.FillEllipse(myBrush, new Rectangle(e.X, e.Y, 10, 10));
ProvinceName = Microsoft.VisualBasic.Interaction.InputBox("郡名", "", "无名",100,100);
provinces.Add(new province(ProvinceName, e.X, e.Y));
listBox1.SelectedIndex = provinces.Count - 1;
myBrush.Dispose();
formGraphics.Dispose();
PaintMap();// This is the function repaint every recorded clicked locations.
}
仅仅画出来是不够的。每次重新绘制表单时,都需要重新绘制。第一步是覆盖 OnPaint
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
// paint your circles here, when they need to be persisted
// e.Graphics.DrawRectangle(redPen, r);
}
显然,您需要跟踪需要绘制的内容,以及何时不再需要绘制的内容,但这应该可以帮助您入门
我使用Bipmap 来存储绘画,然后使用绘画事件重新绘制表单。问题已经解决了。我想当我直接使用“System.Drawing时,我在输入框上绘画。
我正在尝试在表单上编写此功能:用户单击表单,输入框要求用户输入名称,然后在用户单击的表单中的位置绘制一个圆圈。我现在面临的一个问题是圆圈现在绘制在输入框出现的地方。我实际上有一个功能可以重新绘制表单上的每个圆圈,但它仍然不起作用。这是我的代码:
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
string ProvinceName;
System.Drawing.SolidBrush myBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Red);
System.Drawing.Graphics formGraphics;
formGraphics = this.CreateGraphics();
formGraphics.FillEllipse(myBrush, new Rectangle(e.X, e.Y, 10, 10));
ProvinceName = Microsoft.VisualBasic.Interaction.InputBox("郡名", "", "无名",100,100);
provinces.Add(new province(ProvinceName, e.X, e.Y));
listBox1.SelectedIndex = provinces.Count - 1;
myBrush.Dispose();
formGraphics.Dispose();
PaintMap();// This is the function repaint every recorded clicked locations.
}
仅仅画出来是不够的。每次重新绘制表单时,都需要重新绘制。第一步是覆盖 OnPaint
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
// paint your circles here, when they need to be persisted
// e.Graphics.DrawRectangle(redPen, r);
}
显然,您需要跟踪需要绘制的内容,以及何时不再需要绘制的内容,但这应该可以帮助您入门
我使用Bipmap 来存储绘画,然后使用绘画事件重新绘制表单。问题已经解决了。我想当我直接使用“System.Drawing时,我在输入框上绘画。