在子窗口中绘图-C#
我的问题是如何在C#中的子窗口中绘制一条简单的线,即:在子窗口中绘图-C#,c#,C#,我的问题是如何在C#中的子窗口中绘制一条简单的线,即: 我有一个带有按钮的父窗口。单击按钮,将显示一个子窗口,并在其上绘制一条线 那么,我该怎么做呢?这是我的子窗口代码: public partial class Form2 : Form { Pen pen; public Form2() { InitializeComponent(); pen = new Pen(Color.Black); } private v
- 我有一个带有按钮的父窗口。单击按钮,将显示一个子窗口,并在其上绘制一条线
public partial class Form2 : Form
{
Pen pen;
public Form2()
{
InitializeComponent();
pen = new Pen(Color.Black);
}
private void Form2_Paint(object sender, PaintEventArgs e)
{
Graphics g;
g = this.CreateGraphics();
e.Graphics.DrawLine(pen, 10, 10, 100, 100);
}
}
谢谢。以下代码更好:
private void Form2_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
using (Pen p = new Pen(Color.Black))
{
g.DrawLine(pen, 10, 10, 100, 100);
}
}
使用paint事件中的图形实例,并使用语法来自动处理笔对象
记住在父窗口中调用Show方法,如下所示:
private void button_Click(object sender, EventArgs e)
{
Form form2 = new Form2();
form2.ShowDialog();
}
到底什么东西不适合你?子窗口不显示,线条不显示,等等。@Adrian Faciu子窗口显示,但线条未绘制。上面的代码应按原样工作。请发布处理按钮的部分,单击并显示Form2。@Adrian Falciu这是代码:命名空间测试{public partial class Form1:Form{Form f2;public Form1(){InitializeComponent();}私有void按钮1_click(对象发送方,事件参数e){f2=新表单();f2.ShowDialog();}}@EB您是否手工编写Form2_Paint方法?您可能无法通过GUI设计器在设计器文件中注册事件。您不是手工编写的。我以通常的方式注册了该事件。@EB如何尝试在父窗口中绘制线条,因此确保
绘制线条
按您的要求进行操作。我想我找到了一个解决方案:我创建“新笔”在父窗口(Form1)和图形中。在子窗口类(Form2)中,我声明了一个笔和图形变量,我添加了一个构造函数,并从父窗口传递了变量笔和图形。它可以工作。很抱歉,我无法编辑整个代码,因为我的声誉(:-))太低了。感谢大家。我忘了在子窗口类中写下,我添加了如下表单加载:private void Form2\u Load(object sender,EventArgs e){this.Paint+=new System.Windows.Forms.PaintEventHandler(this.Form2\u Paint);}