获取Graphics对象的方法

在做自定义控件时或者GDI+的时候经常会遇到获取Graphics实例的问题。一般有三种获取方式

1、从Paint事件的参数中获取。
窗体和许多控件都有一个Paint事件,有一个PaintEventArgs类型的参数e

private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
        {
           //获取Graphic对象
           Graphics g = e.Graphics;
         //书写绘图代码
            g.DrawLine(new Point(0,0),new Point(1,1));
            //释放Graphic对象占用的资源
            g.Dispose();

}

2. 用CreateGraphics方法创建。
如果需要在Paint方法以外绘图,可以通过控件或窗体的CreateGraphics方法来获取Graphics对象

using(Graphics g=new Control().CreateGraphics())

{

}

3. 对Image对象调用Graphics.FromImage获取。

  //创建Image对象
   Bitmap image1 = new Bitmap("football.jpg");
   //窗体的绘图对象
   Graphics formE = e.Graphics;

4、通过Graphics的FromHwnd函数

HandleRef NullHandleRef = new HandleRef(null, IntPtr.Zero);

using (Graphics g = Graphics.FromHwnd(NullHandleRef.Handle))

{

}

时间: 2024-12-29 12:00:07

获取Graphics对象的方法的相关文章

Android获取LayoutInflater对象的方法总结

在写Android程序时,有时候会编写自定义的View,使用Inflater对象来将布局文件解析成一个View.本文主要目的是总结获取LayoutInflater对象的方法. 1.若能获取context对象,可以有以下几种方法: LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View child = inflater.inflate(R.la

用C3P0获取连接对象的方法

package gxa.bj.util; import java.sql.Connection;import java.sql.SQLException; import javax.sql.DataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; public class C3P0Connect { private static DataSource ds; // 在线程中创建Connection对象的副本 private sta

利用servlet产生随机数,原理是获取Graphics对象进行绘图

public class ResonpeRandomImgDemo extends HttpServlet { int width=100; int height=30; public void doGet(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException { response.setContentType("text/html;charset=utf

获取applicationContext对象的方法

方法一:在初始化时保存ApplicationContext对象 代码: ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml"); ac.getBean("beanId"); 说明:这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况. 方法二:通过Spring提供的工具类获取ApplicationConte

获取数据库连接对象的方法

public class DBHelper { private static final String url="jdbc:oracle:thin:@localhost:1521:orcl";//连接字符串 private static final String user="nga";//用户名 private static final String password="123";//密码 private static Connection co

Java中通过Class类获取Class对象的方法详解

方式1:通过Object类的getObject()方法 Person p = new Person(); Class c = p.getClass(); 方式2: 通过 类名.class 获取到字节码文件对象(任意数据类型都具备一个class静态属性,看上去要比第一种方式简单). Class c2 = Person.class; 方式3: 通过Class类中的方法(将类名作为字符串传递给Class类中的静态方法forName即可) Class c3 = Class.forName("Person

在Android中获取LayoutInflater对象的方法

1.通过系统服务来获得,这是最标准的: LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 2.通过LayoutInflater的静态方法获得: LayoutInflater inflater = LayoutInflater.from(context); 3.如果在Activity中,可以直接使用Activity中的getLayoutInfla

Spring 框架获取 datasource对象的方法

1,使用org.springframework.jdbc.datasource.DriverManagerDataSource  2.使用org.apache.commons.dbcp.BasicDataSource  3.使用org.springframework.jndi.JndiObjectFactoryBean 总结:3种方式中的第一种没有使用连接池,故少在项目中用到,第三种方式需要在web server中配置数据源,不方便于部署,本人推荐使用每二种方式进行数据源的配置. 读配置文件的方

document获取对象三方法

Document对象中有几个常用的方法,我们在Dom简介中提到过.说到获取javascript对象的方法,最常用的可能就是getElementById了,它是Document中最常用的获取对象的方式之一,另外还有两个常用的获取对象的方法是getElementsByTagName 和getElementsByName.其中getElementById获取到的是单对象,而getElementsByName和 getElementsByTagName 获取到的都是集合. 现在我们有一个form表单,内