c# creategraphics()到底怎么用啊

就建立了一个简单的工程FCFS,开始想测试一下,就像在窗体中画一个图形,结果窗体中什么也没有不知道那里有问题,求大神来解决... 就建立了一个简单的工程FCFS,开始想测试一下,就像在窗体中画一个图形,结果窗体中什么也没有

不知道那里有问题,求大神来解决
展开
 我来答
xiangjuan314
2016-01-13 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2846万
展开全部
方法一、利用控件或窗体的Paint事件中的PainEventArgs
在窗体或控件的Paint事件中接收对图形对象的引用,作为PaintEventArgs(PaintEventArgs指定绘制控件所用的Graphics)的一部分,在为控件创建绘制代码时,通常会使用此方法来获取对图形对象的引用。
例如:
//窗体的Paint事件的响应方法

代码如下:
private void form1_Paint(object sender, PaintEventArgs e)

{
Graphics g = e.Graphics;
}
也可以直接重载控件或窗体的OnPaint方法,具体代码如下所示:

代码如下:
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
}
Paint事件在重绘控件时发生。

方法二、调用某控件或窗体的CreateGraphics方法
调用某控件或窗体的CreateGraphics方法以获取对Graphics对象的引用,该对象表示该控件或窗体的绘图图面。如果想在已存在的窗体或控件上绘图,通常会使用此方法。
例如:
Graphics g = this.CreateGraphics();
方法三、调用Graphics类的FromImage静态方法
由从Image继承的任何对象创建Graphics对象。在需要更改已存在的图像时,通常会使用此方法。
例如:

代码如下:
//名为“g1.jpg”的图片位于当前路径下
Image img = Image.FromFile("g1.jpg");//建立Image对象
Graphics g = Graphics.FromImage(img);//创建Graphics对象
freeeeeewind
推荐于2018-02-27 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1328万
展开全部

虽然代码没有语法错误,但却达不到你要的效果。g.RrawRectangle(……)应该放在Form1的Paint事件处理函数中!

public partial class Form1 : Form
{
  Graphics g;
  Rectangle rect   

  public Form1()
  {
    InitializeComponent();
     g = this.CreateGraphics();
     rect = new Rectangle(5, 10, 30, 30);
  }
  private void Form1_Paint(object sender, PaintEventArgs e)
  {
      // 作图方法必须在Paint事件中处理!
      g.DrawRectangle(Pens.Red, rect);
  }
}

作图方法必须在Paint事件中处理。原因与Form的刷新有关:每当窗体被Windows系统刷新都会引发Paint事件。在Paint事件中,你必须重新绘制你要的图形,否则画出的图形在窗体被刷新后就消失了;如果你把绘制图形的方法放到别的地方(比如你放在Form的Load事件处理中),窗体被Windows刷新后,你画出的矩形就被刷没了。

另,上面的代码可以简化为:

public partial class Form1 : Form
{
  //Graphics g;
  Rectangle rect   

  public Form1()
  {
    InitializeComponent();
     //g = this.CreateGraphics();
     rect = new Rectangle(5, 10, 30, 30);
  }
  private void Form1_Paint(object sender, PaintEventArgs e)
  {
     //直接使用事件参数e中的Graphics作图
     e.Graphics.DrawRectangle(Pens.Red, rect);
  }
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式