Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace WindowsFormsApplication1
- {
- public partial class Form1 : Form // Создается форма
- {
- public Form1()
- {
- InitializeComponent(); // Инициализается компонетов формы
- }
- public class Mybox : System.Windows.Forms.Control // Создаем класс, в котором будет описан пиктуребокс(наши кнопочки) и метод его создания. Классов 4 и все они аналогичны друг другу.
- {
- PictureBox p1 = new PictureBox();
- public bool clicked = false;// создаем пиктуребокс
- public bool Clicked
- {
- get { return clicked; }
- set { clicked = value; }
- }
- public void Draw(Form fm) // метод рисования пиктуребокса
- {
- p1.Location = new Point(200, 10); // координаты
- p1.Size = new Size(355, 100); // размер
- p1.Name = "Start"; // имя
- p1.TabIndex = 0; // индекс (он тут по-факту нафиг не нужен, но для грамотности идет)
- p1.TabStop = false; // хз, что это, но тоже нужно
- p1.BackColor = Color.Orange; // цвет
- p1.Parent = fm;
- p1.Click += new EventHandler(p1_click);// это какое-то наследование с формы
- // добавляем событие - нажатие мышкой по пиктуребоксу, чтобы не создавать отдельно метод обработки клика по области
- Graphics g; // теперь создадим графический объект, для отображения текста на кнопке(пиктуребоксе)
- Bitmap bm = new Bitmap(p1.Width, p1.Height); // Вот тут прикольная махинация. Мы не далем какую-нибудь ерудну с отдельным методом рисования хрен пойми где. Мы создаем рисунок типа bmp, на котором мы хотим нарисовать текст
- g = Graphics.FromImage(bm); // Пихаем рисунок в графику
- g.DrawString("Играть", new System.Drawing.Font("Arial Black", 36, FontStyle.Regular, GraphicsUnit.Point), new SolidBrush(Color.Black), new Point(75, 10)); // Рисуем текст
- p1.BackgroundImage = bm; // Созданный нами рисунок мы пихаем на кнопку. Это как фоновая пикча.
- // Все остальные Майбоксы созданы аналогично
- }
- }
- public class Mybox1 : System.Windows.Forms.Control
- {
- PictureBox p2 = new PictureBox();
- public void Draw(Form fm)
- {
- p2.Location = new Point(200, 125);
- p2.Size = new Size(355, 100);
- p2.Name = "Records";
- p2.TabIndex = 1;
- p2.TabStop = false;
- p2.BackColor = Color.Red;
- p2.Parent = fm;
- p2.Click += new EventHandler(p2_click);
- Graphics g;
- Bitmap bm = new Bitmap(p2.Width, p2.Height);
- g = Graphics.FromImage(bm);
- g.DrawString("Рекорды", new System.Drawing.Font("Arial Black", 36, FontStyle.Regular, GraphicsUnit.Point), new SolidBrush(Color.Black), new Point(45, 10));
- p2.BackgroundImage = bm;
- }
- }
- public class Mybox2 : System.Windows.Forms.Control
- {
- PictureBox p3 = new PictureBox();
- public void Draw(Form fm)
- {
- p3.Location = new Point(200, 240);
- p3.Size = new Size(355, 100);
- p3.Name = "Instructions";
- p3.TabIndex = 2;
- p3.TabStop = false;
- p3.BackColor = Color.Gray;
- p3.Parent = fm;
- p3.Click += new EventHandler(p3_click);
- Graphics g;
- Bitmap bm = new Bitmap(p3.Width, p3.Height);
- g = Graphics.FromImage(bm);
- g.DrawString("Руководство", new System.Drawing.Font("Arial Black", 36, FontStyle.Regular, GraphicsUnit.Point), new SolidBrush(Color.Black), new Point(0, 8));
- p3.BackgroundImage = bm;
- }
- }
- public class Mybox3 : System.Windows.Forms.Control
- {
- PictureBox p4 = new PictureBox();
- public void Draw(Form fm)
- {
- p4.Location = new Point(200, 355);
- p4.Size = new Size(355, 100);
- p4.Name = "Exit";
- p4.TabIndex = 3;
- p4.TabStop = false;
- p4.BackColor = Color.Pink;
- p4.Parent = fm;
- p4.Click += new EventHandler(p4_click);
- Graphics g;
- Bitmap bm = new Bitmap(p4.Width, p4.Height);
- g = Graphics.FromImage(bm);
- g.DrawString("Выход", new System.Drawing.Font("Arial Black", 36, FontStyle.Regular, GraphicsUnit.Point), new SolidBrush(Color.Black), new Point(75, 10));
- p4.BackgroundImage = bm;
- }
- }
- public void Form1_Load(object sender, EventArgs e) // Собственно тут идет перечень того, что должно произойти при запуске формы
- {
- Mybox m = new Mybox(); // Создаем объект майбокса, чтобы нарисовать на форме кнопку
- Controls.Add(m); // Добавляем объект на форму
- m.Draw(this);
- // Объект рисует на форме кнопочку
- Mybox1 m1 = new Mybox1(); // Тут все аналогично вышеописанному
- Controls.Add(m1);
- m1.Draw(this);
- Mybox2 m2 = new Mybox2();
- Controls.Add(m2);
- m2.Draw(this);
- Mybox3 m3 = new Mybox3();
- Controls.Add(m3);
- m3.Draw(this);
- }
- public static void p1_click(object sender, EventArgs e) // Это функции-события клика по именно пиктуребоксу
- {
- this.Dispose();
- }
- private static void p2_click(object sender, EventArgs e)
- {
- MessageBox.Show("Привет! Это кнопка рекордов, но, увы, она еще не работает :(", "Рекорды");
- }
- private static void p3_click(object sender, EventArgs e)
- {
- MessageBox.Show("Привет! Это кнопка инструкций к игре, но, увы, она еще не работает :(", "Как играть");
- }
- private static void p4_click(object sender, EventArgs e)
- {
- if (MessageBox.Show("Вы точно хотите выйти?", "Выход из игры", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) // Тут уже чуть посложнее. Вместо тупого месседжбокса с кнопкой ОК, тут их уже две
- Application.Exit(); // Команда закрытия приложения
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement