C#中关于绘图的一些基础问题

1.请问Graphics g = this.CreateGraphics(); 和 var g = e.Graphics; 有什么区别呢?
2.在这些声明中g和e究竟是什么意思,好像变量名都用他们?

菜鸟一个希望各位大神用朴实的语言教教我,谢谢啦!

1、前者是实例化一个新的 Graphics 类,后者是把 e.Graphics 赋值给现有变量。Graphics 这个类,比较特殊,因为它是GDI+的基本类,类似传统的Canvas概念,就是说: 对于一个用于绘图的Graphics 而言,它必须有载体,也就是在哪里绘制。所以, Graphics 不能用 new Graphics 的方式来实例化,而必须使用具有可绘特性的 Control 来作为依托,也就是 this.CreateGraphics 或者 Panel.CreateGraphics 或者 Form.CreateGraphics 类似的。

2、g 只是个变量名而已,是 Graphics 的首字母;e 也是个变量名,是事件 Events 的首字母。就像我们 for 循环里常用 i 一样,约定俗成而已,你写成别的也无所谓。出现 e.Graphics 一般是在 OnPaint 或 Paint 事件里,这个事件有一个参数 e,类型为 PaintEventArgs。可以用 e.Graphics 获取触发这个事件的控件的可绘制区域。
温馨提示:内容为网友见解,仅供参考
无其他回答

C#中关于绘图的一些基础问题
1、前者是实例化一个新的 Graphics 类,后者是把 e.Graphics 赋值给现有变量。Graphics 这个类,比较特殊,因为它是GDI+的基本类,类似传统的Canvas概念,就是说: 对于一个用于绘图的Graphics 而言,它必须有载体,也就是在哪里绘制。所以, Graphics 不能用 new Graphics 的方式来实例化,而必须使用...

关于c#里GDI+绘图问题
首先记住 屏幕是没有记性的 你通过改变窗体大小 使得控件的客户区域暴漏大小改变 会触发控件的重绘事件 它是走paint的 你在其他代码里画过的东西 程序在重绘的时候根本调用不到 举个最简单的例子 假设你在mousemove里画成功了 把窗体最小化-最大化一下 你画的东西就没了 这就是基于GDI绘图的控件...

C#绘图问题,关于重绘
1、form_load方法里调用绘图方法,绘出图来,然后paint函数重绘,因为没有写,所以就全部图不见了,所以其实就是一闪而过的图。buttonclick调用绘图方法可以绘图,是因为绘出图来,没有执行paint函数重绘 2、关于重绘的问题,我以为也试过很多种方法,最后到目前为止,也只是能在paint函数里实现。如果你...

c# winform 关于绘图的问题,如何定义一个Graphics g作为全局变量_百度...
你这样试试 我的就是这样做的。新建一个Bitmap,bmp为全局变量,然后再画 bmp = new Bitmap(this.Width, this.Height);using (Graphics g = Graphics.FromImage(bmp)){ pictureBox1.Image = bmp;} 只要用到g的时候 就 这样写 using (Graphics g = Graphics.FromImage(bmp)){ 中间是你的...

C#如何实现类似于绘图这样的插入操作
public static string 文字;在Form2里面定义一个静态全局变量来保存文字。单击Form2的确定后,通知Form1,变为绘图模式(通过设置Form1的全局bool变量)。Form1.绘图模式 = true;然后在Form1的MouseUp事件中添加 private void Form1_MouseUp(object sender, MouseEventArgs e) {if (绘图模式 == true && ...

如何在c#中绘图第一次点击显示圆点,第二次点击连成直线?
在 C# 中绘图时,可以通过捕获鼠标事件并绘制相应的图形,来实现第一次点击显示圆点,第二次点击连成直线的效果。以下是一个简单的实现方法:在 C# 窗体应用程序中添加一个 Panel 控件,用于显示绘图内容。在 Panel 控件的 Paint 事件中绘制图形。在 Panel 控件的 MouseClick 事件中捕获鼠标点击事件,并...

c#的graphics绘图问题
加个Timer,画点代码写到Timer的Tick事件里,按钮只控制Timer的Enable属性

关于C#的问题 那个picturebox里面的paint函数 第一次绘图成功 然后我单 ...
Paint是重绘事件的处理函数只能在Form1_Load触发后才能触发或者是在AutoSizeChanged 后自动触发~你要现在其他地方触发只能手动执行重绘绑定的处理函数了

在C#的Graphic绘图,坐标问题
} private void button1_Click(object sender, EventArgs e) { Graphics g = pictureBox1.CreateGraphics(); \/\/画出来后用尺子量,1cm g.DrawRectangle(new Pen(Brushes.Red), Xmm2pixels(g, 0), Ymm2pixels(g, 0), Xmm2pixels(g, 10), Ymm2pixels(g, 10)); } ...

c#中Bitmap 相关问题 怎样把图片分成两部分啊
1.先计算两页的大小 2. new Bitmap(宽, 高); 创建两个bitmap对象 3. Graphics.FromImage(img) 创建bitmap对应的绘图对象 4. graphics.DrawImage(原图, 原图位置尺寸, 目标位置尺寸);5. 释放资源,得到的两个bitmap就是你想要的了

相似回答
大家正在搜