Form1.cs
Upload User: chinafred
Upload Date: 2007-08-14
Package Size: 10127k
Code Size: 6k
Category:

ADO-ODBC

Development Platform:

C#

  1. using System;
  2. using System.Drawing;
  3. using System.Collections;
  4. using System.ComponentModel;
  5. using System.Windows.Forms;
  6. using System.Data;
  7. using System.Drawing.Drawing2D;
  8. namespace ch2_4
  9. {
  10. /// <summary>
  11. /// Form1 的摘要说明。
  12. /// </summary>
  13. public class Form1 : System.Windows.Forms.Form
  14. {
  15. /// <summary>
  16. /// 必需的设计器变量。
  17. /// </summary>
  18. private System.ComponentModel.Container components = null;
  19. private System.Windows.Forms.ContextMenu contextMenu1;
  20. private System.Windows.Forms.MenuItem menuItem1;
  21. private System.Windows.Forms.MenuItem menuItem2;
  22. private System.Windows.Forms.MenuItem menuItem3;
  23. private System.Windows.Forms.MenuItem menuItem4;
  24. private System.Windows.Forms.MenuItem menuItem5;
  25. private System.Drawing.Brush backgroundBrush;
  26. private System.Windows.Forms.MenuItem menuItem6;
  27. private System.Windows.Forms.MenuItem menuItem7;
  28. private System.Windows.Forms.MenuItem menuItem8;
  29. //代表旋转的角度
  30. private  float  rotate=0;
  31. private System.Windows.Forms.MenuItem menuItem9;
  32. //代表放大的倍数
  33. private  float  size=1;
  34. public Form1()
  35. {
  36. //
  37. // Windows 窗体设计器支持所必需的
  38. //
  39. InitializeComponent();
  40. //
  41. // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
  42. //
  43. }
  44. /// <summary>
  45. /// 清理所有正在使用的资源。
  46. /// </summary>
  47. protected override void Dispose( bool disposing )
  48. {
  49. if( disposing )
  50. {
  51. if (components != null) 
  52. {
  53. components.Dispose();
  54. }
  55. }
  56. base.Dispose( disposing );
  57. }
  58. #region Windows Form Designer generated code
  59. /// <summary>
  60. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  61. /// 此方法的内容。
  62. /// </summary>
  63. private void InitializeComponent()
  64. {
  65. this.contextMenu1 = new System.Windows.Forms.ContextMenu();
  66. this.menuItem1 = new System.Windows.Forms.MenuItem();
  67. this.menuItem2 = new System.Windows.Forms.MenuItem();
  68. this.menuItem3 = new System.Windows.Forms.MenuItem();
  69. this.menuItem4 = new System.Windows.Forms.MenuItem();
  70. this.menuItem5 = new System.Windows.Forms.MenuItem();
  71. this.menuItem6 = new System.Windows.Forms.MenuItem();
  72. this.menuItem7 = new System.Windows.Forms.MenuItem();
  73. this.menuItem8 = new System.Windows.Forms.MenuItem();
  74. this.menuItem9 = new System.Windows.Forms.MenuItem();
  75. // 
  76. // contextMenu1
  77. // 
  78. this.contextMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  79.  this.menuItem1,
  80.  this.menuItem2,
  81.  this.menuItem3,
  82.  this.menuItem4,
  83.  this.menuItem6,
  84.  this.menuItem7,
  85.  this.menuItem8,
  86.  this.menuItem9,
  87.  this.menuItem5});
  88. // 
  89. // menuItem1
  90. // 
  91. this.menuItem1.Index = 0;
  92. this.menuItem1.Text = "旋转45度";
  93. this.menuItem1.Click += new System.EventHandler(this.menuItem1_Click);
  94. // 
  95. // menuItem2
  96. // 
  97. this.menuItem2.Index = 1;
  98. this.menuItem2.Text = "旋转90度";
  99. this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click);
  100. // 
  101. // menuItem3
  102. // 
  103. this.menuItem3.Index = 2;
  104. this.menuItem3.Text = "旋转120度";
  105. this.menuItem3.Click += new System.EventHandler(this.menuItem3_Click);
  106. // 
  107. // menuItem4
  108. // 
  109. this.menuItem4.Index = 3;
  110. this.menuItem4.Text = "旋转180度";
  111. this.menuItem4.Click += new System.EventHandler(this.menuItem4_Click);
  112. // 
  113. // menuItem5
  114. // 
  115. this.menuItem5.Index = 8;
  116. this.menuItem5.Text = "还原";
  117. this.menuItem5.Click += new System.EventHandler(this.menuItem5_Click);
  118. // 
  119. // menuItem6
  120. // 
  121. this.menuItem6.Index = 4;
  122. this.menuItem6.Text = "-";
  123. // 
  124. // menuItem7
  125. // 
  126. this.menuItem7.Index = 5;
  127. this.menuItem7.Text = "放大120%";
  128. this.menuItem7.Click += new System.EventHandler(this.menuItem7_Click);
  129. // 
  130. // menuItem8
  131. // 
  132. this.menuItem8.Index = 6;
  133. this.menuItem8.Text = "缩小80%";
  134. this.menuItem8.Click += new System.EventHandler(this.menuItem8_Click);
  135. // 
  136. // menuItem9
  137. // 
  138. this.menuItem9.Index = 7;
  139. this.menuItem9.Text = "-";
  140. // 
  141. // Form1
  142. // 
  143. this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
  144. this.ClientSize = new System.Drawing.Size(480, 357);
  145. this.ContextMenu = this.contextMenu1;
  146. this.Name = "Form1";
  147. this.Text = "图形的旋转和缩放";
  148. }
  149. #endregion
  150. protected override void OnPaint(PaintEventArgs e) 
  151. {
  152. Graphics g = e.Graphics;
  153. g.SmoothingMode = SmoothingMode.AntiAlias;
  154.             g.FillRectangle(new SolidBrush(Color.FromArgb(180, Color.White)), ClientRectangle);
  155. //将全局变换矩阵重置为单位矩阵,即不旋转
  156. g.ResetTransform();
  157. //设置旋转角度
  158. g.RotateTransform(this.rotate);
  159. //设置一个缩放变化,变换顺序为增加
  160. g.ScaleTransform(this.size,this.size,MatrixOrder.Append);
  161. //设置一个平移变换,变换顺序为添加
  162. g.TranslateTransform(200,130,MatrixOrder.Append);
  163. //绘制图形
  164. g.FillRectangle(new SolidBrush(Color.SlateBlue), 0, 0, 100, 125);
  165. }
  166. /// <summary>
  167. /// 应用程序的主入口点。
  168. /// </summary>
  169. [STAThread]
  170. static void Main() 
  171. {
  172. Application.Run(new Form1());
  173. }
  174. private void menuItem1_Click(object sender, System.EventArgs e)
  175. {
  176. this.rotate=45;
  177. this.Refresh();
  178. }
  179. private void menuItem2_Click(object sender, System.EventArgs e)
  180. {
  181. this.rotate=90;
  182. this.Refresh();
  183. }
  184. private void menuItem3_Click(object sender, System.EventArgs e)
  185. {
  186. this.rotate=120;
  187. this.Refresh();
  188. }
  189. private void menuItem4_Click(object sender, System.EventArgs e)
  190. {
  191. this.rotate=180;
  192. this.Refresh();
  193. }
  194. private void menuItem5_Click(object sender, System.EventArgs e)
  195. {
  196. this.rotate=0;
  197. this.size=1;
  198. this.Refresh();
  199. }
  200. private void menuItem7_Click(object sender, System.EventArgs e)
  201. {
  202.    this.size=1.2f;
  203.    this.Refresh();
  204. }
  205. private void menuItem8_Click(object sender, System.EventArgs e)
  206. {
  207.    this.size=0.8f;
  208. this.Refresh();
  209. }
  210. }
  211. }