Генератор цветов Уроки C++ Уроки Windows forms Учебники по программированию Уроки HTML Уроки CSS Готовые задания Исходники Полезные программы
регистрация доменов

Дешёвые домены


Уроки Windows Forms C++/C#




Мем-генератор в MVS C#

Перед тем, как начать объяснять строение такой программы, как Мем-Генератор обязательно посмотрите предыдущий урок и этот, если ещё не смотрели их. Создайте приложение в среде "Windows Forms". Перенесите на форму следующие элементы: 6"label", 4"textBox", 4"button" и 1"PictureBox".



Далее измените текст у элементов "label" и "button", как показано на картинке, расположенной ниже, если не знаете, как это сделать – посмотрите этот урок. Label1,2,3,4 - "|";
Label5 – "Верхняя надпись";
Lable6 – "Нижняя надпись";
Button1- "Обзор";
Button1 – "Сохранить";
Bitton3 – "Ввод";
Button4- картинка, обозначающая очистку поля;
Символы “|” будут показывать, где нужно писать текст, что бы он располагался по середине строки, а не вначале картинки, это если вы пишите на верху или в низу только одно слово, а если несколько – то можно и из начала "textBox", на примере в конце этого урока вы поймёте, что имеется в виду, если ещё не поняли. После этого у “textbox3” “textBox4” включите режим "Multeline" растяните, как на нижнем рисунке и включите свойство “ScrollBars”->“Vertical” – о том, как это делать вы можете узнать их “предыдущего урока”. Наложите “textBox3”на "textBox1", что бы его небыло видно, так же "textBox4" наложите на "tetxBox2". На кнопку "button4" загрузите это изображение:



если не знаете, как это делать – посмотрите этот урок. Так же измените цвет поля "PictureBox" на белый, как это делать рассматривается в этом же уроке. В свойствах фоомы найдите свойство "FormBorStyle" поставив "Fixed3D" после этого, когда программа загрузиться – размер формы будет нельзя изменить. Вид после изменений:





После того, как всё это сделано зайдите в свойства "textBox3" "textBox4" -> "Font" и поменяйте размер шрифта на “12”, а у "textBox1" и "tetxBox2" то же поставьте какой-нибудь другой размер. Это делается для следующего: текст из “textBox3” и “textBox4” будет копироваться в "textBox1" и "tetxBox2", иначе размер формы будет огромным, так как внутренний шрифт установленный в коде будет равен "42". После того, как вы сделали всё, как написано и написали ниже расположенный код, но у вас всё равно форма огромного размера – не переживайте: измените ещё раз размеры шрифтов у каждого из "textBox"ов. Теперь о том, какого размера должны быть исходные картинки:






Ну а теперь – код программы:


C#


namespace Browser_2_
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private Bitmap bmp_for_draw;
private string full_name_of_image;

private void Form1_Load(object sender, EventArgs e)
{
this.Text = "МемГенератор";

Font = new System.Drawing.Font("Times New Roman", 32, FontStyle.Bold);
this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
}

private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog open_dialog = new OpenFileDialog();
open_dialog.Filter = "Image Files(*.BMP;*.JPG;*.GIF;*.PNG)
|*.BMP;*.JPG;*.GIF;*.PNG|All files (*.*)|*.*";
if (open_dialog.ShowDialog() == DialogResult.OK)
{
try
{
full_name_of_image = open_dialog.FileName;
bmp_for_draw = new Bitmap(open_dialog.FileName);
pictureBox1.Image = bmp_for_draw;
pictureBox1.Invalidate();
}
catch
{
DialogResult rezult = MessageBox.Show("Impossible to open selected file",
"Warning",MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}

private void button2_Click(object sender, EventArgs e)
{
if (pictureBox1.Image != null)
{
string format = full_name_of_image.Substring(full_name_of_image.Length - 4, 4);
SaveFileDialog savedialog = new SaveFileDialog();
savedialog.OverwritePrompt = true; // если файл с указанным именем уже существует
savedialog.CheckPathExists = true; //если пользователь вводит неверный путь или имя файла
savedialog.ShowHelp = true;
savedialog.Filter = "Image Files(*.BMP)|*.BMP|Image Files(*.JPG)|*.JPG|Image
Files(*.GIF)|*.GIF|Image Files(*.PNG)|*.PNG|All files (*.*)|*.*";
if (savedialog.ShowDialog() == DialogResult.OK)
{
try
{
Bitmap MM = new Bitmap(pictureBox1.Image);
MM.Save(savedialog.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch
{
MessageBox.Show("Impossible to save image", "FATAL ERROR",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}

private void button3_Click(object sender, EventArgs e)
{
textBox1.Text = textBox3.Text;
textBox2.Text = textBox4.Text;
SaveFileDialog savedialog = new SaveFileDialog();
String Text = String.Format("{0}", textBox1.Text);
String Txt = String.Format("{0}", textBox2.Text);
Brush Кисть = new SolidBrush(Color.White);
Bitmap MM = new Bitmap(pictureBox1.Image);
Graphics G = Graphics.FromImage(MM); Graphics Q = G;
G.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
G.DrawString(Text, Font, Кисть, 13, 2);
Q.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
Q.DrawString(Txt, Font, Кисть, 13, 290);
pictureBox1.Image = MM;
}

private void button4_Click_1(object sender, EventArgs e)
{
Bitmap BM = new Bitmap(pictureBox1.Image);
Graphics C = Graphics.FromImage(BM);
//Graphics C = CreateGraphics();
C.Clear(pictureBox1.BackColor);
pictureBox1.Image = BM;
}

}
}



Результат:








Следующий урок >>