选择显示字体大小

asp.net可交互式位图窗体设计(7)

  在 windows 窗体应用程序中使用可绘制对象
    我们已经讨论了可绘制对象类,下面谈谈如何在 windows 窗体应用程序中使用这些类。首先谈一下 windows 窗体应用程序是怎样工作的。
  
    windows 窗体应用程序的主要部分
    简单的 windows 窗体应用程序包含一个主窗口(或窗体),其中包含控件子项。如果您是一位 visual basic 程序员,就会发现这个模型非常熟悉。
  
    主窗口
    任何 windows 窗体应用程序中的关键对象都是主窗口。该窗体将在应用程序的 static/shared main 方法中创建,如下所示。
  
    在一个简单的 windows 窗体应用程序(例如我们所编写的)中,所有其他控件都是此主窗体的子项。
  
    按钮和文本框
    我们的窗体具有一套按钮和一些文本框。每个按钮有一个处理程序,可以向列表中添加形状,并绘制列表。所包含的文本框用于显示如何从窗体中获得输入。还有一个分组框,提供了有关文本框和相关按钮的可视指示。
  
    picturebox
    左边是最重要的控件:picturebox。这是绘制和显示图像的位置。在 windows 应用程序中,您可能需要随时重绘图像 -- 例如,如果窗口被最小化或被其他窗口覆盖,则再次显示窗口时便需要进行重绘。
  
    在响应画图 (paint) 消息时便会完成这种按需绘图,由父窗体窗口类中的一个事件处理程序处理。
  
    windows 窗体应用程序中的主要例程
    我们简单看一下 windows 窗体应用程序中的重要例程。请注意,用户界面的代码与可绘制对象的代码相比非常简短。这就是使用 .net framework 完成诸多工作的好处。(这也表明我们使用可绘制对象类完成的工作确实很好。)
  
    窗体方法
    窗体(或主窗口)是从 system.windows.forms.form 中派生的,所以继承了其所有行为。所有这些控件都声明为这个类的成员,这样在清理类时它们也将被清理(清理是在 dispose 方法中实际明确完成的)。
  
    它还包含了我们所需数据的声明(dshapelist 和一个随机数生成器对象)、main 以及用于按钮单击事件和 picturebox 画图事件的事件处理程序。
  
    main
    main 的任务就是创建和运行主窗口对象。其 c# 代码如下所示。
  
  
  c#
  
  [stathread]
  static void main()
  {
  application.run(new mainwindow());
  }
  
  
    stathread 属性对于 windows 窗体应用程序的 main 非常重要 -- 您应当始终使用该项,以便依赖于 ole automation(例如拖放和剪贴板)的功能能够正常工作。
  
    在 microsoft visual studio? 生成的 visual basic .net 源代码中不会找到此方法,但是如果使用 ildasm 在 .exe 中查找,便会找到一个与上面所述功能相同的 main -- 可能是由 visual basic .net 编译器生成的。
  
    initializecomponent
    在 windows form designer generated code(windows 窗体设计器生成的代码)下(如果不能看到此区域中的代码,单击小加号),会看到用于创建和初始化所有按钮和窗体上其他控件的代码。
  
    数据声明/随机数生成
    除了在代码的隐藏区域中声明的所有控件外,我们还需要声明两个变量:存放绘图列表的数据结构,以及一个 random 类型的对象。我们使用 random 对象为所创建的对象的位置生成随机数。
  
    数据声明位于 mainwindow 类内,但位于任何方法之外。在 c# 和 visual basic .net 中,其代码如下所示:
  
  
    c#
  dshapelist drawinglist = new dshapelist();
  random randomgen = new random();
  
  
    visual basic
  
  .net dim drawinglist as new dshapelist()
  dim randomgen as new random()
  
  
    我们还编写了一个 helper 方法以获得一个随机点:
  
  
     c#
  private point getrandompoint() {
  return new point(randomgen.next(30, 320), randomgen.next(30, 320));
  }
  
    visual basic
  
  .net private function getrandompoint() as point
  return new point(randomgen.next(30, 320), randomgen.next(30, 320))
  end function
  
  
    它生成两个位于 30 和 320 之间的随机数,作为随机点的坐标。
  


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons