Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.07 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10.  
  11. namespace WindowsFormsApplication1
  12. {
  13. public partial class Form1 : Form // Создается форма
  14. {
  15.  
  16.  
  17. public Form1()
  18. {
  19. InitializeComponent(); // Инициализается компонетов формы
  20.  
  21. }
  22. public class Mybox : System.Windows.Forms.Control // Создаем класс, в котором будет описан пиктуребокс(наши кнопочки) и метод его создания. Классов 4 и все они аналогичны друг другу.
  23. {
  24. PictureBox p1 = new PictureBox();
  25. public bool clicked = false;// создаем пиктуребокс
  26. public bool Clicked
  27. {
  28. get { return clicked; }
  29. set { clicked = value; }
  30.  
  31. }
  32.  
  33. public void Draw(Form fm) // метод рисования пиктуребокса
  34. {
  35.  
  36. p1.Location = new Point(200, 10); // координаты
  37. p1.Size = new Size(355, 100); // размер
  38. p1.Name = "Start"; // имя
  39.  
  40. p1.TabIndex = 0; // индекс (он тут по-факту нафиг не нужен, но для грамотности идет)
  41. p1.TabStop = false; // хз, что это, но тоже нужно
  42. p1.BackColor = Color.Orange; // цвет
  43. p1.Parent = fm;
  44. p1.Click += new EventHandler(p1_click);// это какое-то наследование с формы
  45. // добавляем событие - нажатие мышкой по пиктуребоксу, чтобы не создавать отдельно метод обработки клика по области
  46.  
  47. Graphics g; // теперь создадим графический объект, для отображения текста на кнопке(пиктуребоксе)
  48. Bitmap bm = new Bitmap(p1.Width, p1.Height); // Вот тут прикольная махинация. Мы не далем какую-нибудь ерудну с отдельным методом рисования хрен пойми где. Мы создаем рисунок типа bmp, на котором мы хотим нарисовать текст
  49. g = Graphics.FromImage(bm); // Пихаем рисунок в графику
  50. g.DrawString("Играть", new System.Drawing.Font("Arial Black", 36, FontStyle.Regular, GraphicsUnit.Point), new SolidBrush(Color.Black), new Point(75, 10)); // Рисуем текст
  51. p1.BackgroundImage = bm; // Созданный нами рисунок мы пихаем на кнопку. Это как фоновая пикча.
  52.  
  53. // Все остальные Майбоксы созданы аналогично
  54.  
  55.  
  56. }
  57.  
  58. }
  59. public class Mybox1 : System.Windows.Forms.Control
  60. {
  61. PictureBox p2 = new PictureBox();
  62. public void Draw(Form fm)
  63. {
  64. p2.Location = new Point(200, 125);
  65. p2.Size = new Size(355, 100);
  66. p2.Name = "Records";
  67. p2.TabIndex = 1;
  68. p2.TabStop = false;
  69. p2.BackColor = Color.Red;
  70. p2.Parent = fm;
  71. p2.Click += new EventHandler(p2_click);
  72.  
  73. Graphics g;
  74. Bitmap bm = new Bitmap(p2.Width, p2.Height);
  75. g = Graphics.FromImage(bm);
  76. g.DrawString("Рекорды", new System.Drawing.Font("Arial Black", 36, FontStyle.Regular, GraphicsUnit.Point), new SolidBrush(Color.Black), new Point(45, 10));
  77. p2.BackgroundImage = bm;
  78. }
  79.  
  80. }
  81. public class Mybox2 : System.Windows.Forms.Control
  82. {
  83. PictureBox p3 = new PictureBox();
  84. public void Draw(Form fm)
  85. {
  86. p3.Location = new Point(200, 240);
  87. p3.Size = new Size(355, 100);
  88. p3.Name = "Instructions";
  89. p3.TabIndex = 2;
  90. p3.TabStop = false;
  91. p3.BackColor = Color.Gray;
  92. p3.Parent = fm;
  93. p3.Click += new EventHandler(p3_click);
  94.  
  95. Graphics g;
  96. Bitmap bm = new Bitmap(p3.Width, p3.Height);
  97. g = Graphics.FromImage(bm);
  98. g.DrawString("Руководство", new System.Drawing.Font("Arial Black", 36, FontStyle.Regular, GraphicsUnit.Point), new SolidBrush(Color.Black), new Point(0, 8));
  99. p3.BackgroundImage = bm;
  100.  
  101. }
  102.  
  103. }
  104.  
  105. public class Mybox3 : System.Windows.Forms.Control
  106. {
  107. PictureBox p4 = new PictureBox();
  108.  
  109. public void Draw(Form fm)
  110. {
  111. p4.Location = new Point(200, 355);
  112. p4.Size = new Size(355, 100);
  113. p4.Name = "Exit";
  114. p4.TabIndex = 3;
  115. p4.TabStop = false;
  116. p4.BackColor = Color.Pink;
  117. p4.Parent = fm;
  118. p4.Click += new EventHandler(p4_click);
  119.  
  120. Graphics g;
  121. Bitmap bm = new Bitmap(p4.Width, p4.Height);
  122. g = Graphics.FromImage(bm);
  123. g.DrawString("Выход", new System.Drawing.Font("Arial Black", 36, FontStyle.Regular, GraphicsUnit.Point), new SolidBrush(Color.Black), new Point(75, 10));
  124. p4.BackgroundImage = bm;
  125. }
  126.  
  127. }
  128.  
  129.  
  130.  
  131. public void Form1_Load(object sender, EventArgs e) // Собственно тут идет перечень того, что должно произойти при запуске формы
  132. {
  133.  
  134.  
  135. Mybox m = new Mybox(); // Создаем объект майбокса, чтобы нарисовать на форме кнопку
  136. Controls.Add(m); // Добавляем объект на форму
  137. m.Draw(this);
  138.  
  139. // Объект рисует на форме кнопочку
  140.  
  141.  
  142. Mybox1 m1 = new Mybox1(); // Тут все аналогично вышеописанному
  143. Controls.Add(m1);
  144. m1.Draw(this);
  145.  
  146. Mybox2 m2 = new Mybox2();
  147. Controls.Add(m2);
  148. m2.Draw(this);
  149.  
  150. Mybox3 m3 = new Mybox3();
  151. Controls.Add(m3);
  152. m3.Draw(this);
  153.  
  154. }
  155. public static void p1_click(object sender, EventArgs e) // Это функции-события клика по именно пиктуребоксу
  156. {
  157. this.Dispose();
  158. }
  159. private static void p2_click(object sender, EventArgs e)
  160. {
  161. MessageBox.Show("Привет! Это кнопка рекордов, но, увы, она еще не работает :(", "Рекорды");
  162. }
  163. private static void p3_click(object sender, EventArgs e)
  164. {
  165. MessageBox.Show("Привет! Это кнопка инструкций к игре, но, увы, она еще не работает :(", "Как играть");
  166. }
  167. private static void p4_click(object sender, EventArgs e)
  168. {
  169. if (MessageBox.Show("Вы точно хотите выйти?", "Выход из игры", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) // Тут уже чуть посложнее. Вместо тупого месседжбокса с кнопкой ОК, тут их уже две
  170. Application.Exit(); // Команда закрытия приложения
  171. }
  172.  
  173. }
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement