Uploaded by Даша Громова

17 pract editor

advertisement
Лабораторна робота на тему «Занесення тексту в PictureBox, створення текстового
редактора, створення Web-браузера»
Загальні вказівки
В роботі приведені програми для типових задач. Особливу увагу слід звернути на
створення простого текстового редактора і на програмування Web-браузера.
Приклад 1.Відображення тексту в PictureBox
Постановка задачі
Створити програму для розміщення на певному місці в PictureBox тексту,
який попередньо заноситься в текстове вікно. Задавати шрифт, розмір і колір тексту.
Послідовність дій
1 Створити проект grafregim13 в D:\2021\II_CURS\GRAFIKA.
На формі розмістити button1, pictureBox1, а також textBox1 в режимі Multeline
(рис.1). Включити властивість ScrolBars Vertical.
Рис.1.
2 Створити обробник для головної форми:
private: System::Void MyForm_Load(System::Object^ sender, System::EventArgs^ e) {
Font = gcnew System::Drawing::Font("Times New Roman", 14, FontStyle::Bold);
button1->Text = "Написати";
}
3 Створити обробник для button1:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
String^ Text = String::Format("{0}", textBox1->Text);
Brush^ brush1 = gcnew SolidBrush(Color::Blue);
Graphics^ graf = pictureBox1->CreateGraphics();
graf->TextRenderingHint =
System::Drawing::Text::TextRenderingHint::AntiAlias;
graf->DrawString(Text,Font,brush1,100,50);
}
4 Запустити програму. Ввести кілька рядків тексту в textBox1. При введенні вони в
текстовому вікні будуть відображатися по одному рядку. Після натискання на
button1 в pictureBox1з’являться усі рядки в тій послідовності, в якій вони вводилися
(рис.2).
Рис.2.
Програма завершена.
Приклад 2. Створення текстового редактора
Постановка задачі
Створити простий текстовий редактор. Передбачити створення або
відкривання файлу , його редагування та збереження в потрібній папці. При
внесенні змін внаслідок редагування при виході або при натисканні на хрестик при
закриванні форми програма повинна запитувати чи треба зберігати зміни. У
випадку, якщо файл уже існує, повинне бути запитання змінювати його чи ні.
Послідовність дій
1 Створити проект grafregim15 в D:\2021\II_CURS\GRAFIKA.
Розмістити на формі елменти MenuStrip, TexBox, openFileDialog, saveFileDialog
(рис.1).
Рис.1
2 Назвати заголовок для MenuStrip «Файл» і створити в ньому три пункти:
«Вiдкрити», «Зберегти як», «Вихiд». Для цього треба клацнути в лівому верхньому
куті. Там з’явиться запрошення “Type here” (рис.2).
Рис.2
Надрукувати зміст випадаючого меню у вікнах, які розміщуються рівнем
нижче (рис.3).
Рис.3
3 Прив’язати textbox l до усіх сторін форми. Для цього використовується
властивість Anchor. Це властивість, яка визначає до яких сторін форми буде
прив’язаний елемент. Наприклад, якщо до правої, то при збільшенні або зменшенні
розміра форми права сторона textbox також або збільшується або зменшується.
Якщо це не текстове вікно, а кнопка button, то вона буде пересуватися за стороною
форми, до якої прив’язана.
Таким чином, треба вибрати властивість Anchor для textBox1. По
замовчуванні закрашені ліва і верхня лінії. Клацнути по нижній і правій, щоб
прив’язати до усіх сторін(рис.4)..
Рис.4.
Крім того, для textBox1 треба установити властивість Multiline в True і
ScrollBars Vertical. Це дозволить використовувати більше, ніж один рядок в
текстовому вікні і мати в ньому вертикальну прокрутку.
5 Створити обробник події- закриття форми при натисканні на хрестик. Для
цього треба викликати Properties головної форми , вибрати «блискавку» і знайти в
списку, який відкриється, подію FormClosing. Двічі клацнути по ній, щоб утворився
пустий обробник MyForm_FormClosing цієї події.
6 Створити обробники.
6.1 Обробник завантаження форми:
private: System::Void MyForm_Load(System::Object^ sender, System::EventArgs^ e) {
this->Text = "Текстовий редактор";
openFileDialog1->FileName = "D:\\2021\\II_CRS\\GRAFIKA\\privit.txt";
// Фільтр для файлів, які можна відкривати
saveFileDialog1->Filter= "Текстовi файли (*.txt)|*.txt|All files (*.*)|*.*";
}
6.2 Обробник для menuStrip1_ItemClicked:
private: System::Void menuStrip1_ItemClicked(System::Object^ sender,
System::Windows::Forms::ToolStripItemClickedEventArgs^ e) {
}
6.3 Обробники для «зберегти» із випадаючого списку:
private: System::Void зберегтиЯкToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e) {
saveFileDialog1->FileName = openFileDialog1->FileName;
if (saveFileDialog1->ShowDialog() == Windows::Forms::DialogResult::OK)
Save();
}
6.4 Функція для занесення в файл:
void Save()
{
try
{
// Створення экземпляра StreamWriter для запису в файл:
auto MyWriter = gcnew IO::StreamWriter(saveFileDialog1->FileName, false,
System::Text::Encoding::GetEncoding(1251));
MyWriter->Write(textBox1->Text);
MyWriter->Close(); textBox1->Modified = false;
}
catch (Exception^ Ситуацiя)
{
MessageBox::Show(Ситуацiя->Message, "Помилка",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
}
}
6.5 Обробник для «відкрити»:
private: System::Void вiдкритиToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e) {
openFileDialog1->ShowDialog();
if (openFileDialog1->FileName == nullptr)
return;
try
{
auto MyReader = gcnew IO::StreamReader(openFileDialog1->FileName);
System::Text::Encoding::GetEncoding(1251);
textBox1->Text = MyReader->ReadToEnd();
MyReader->Close();
}
catch (IO::FileNotFoundException^ Ситуацiя)
{
MessageBox::Show(Ситуацiя->Message + "\nФайл не знайдено",
"Помилка", MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
}
}
6.6 Обробник для «вихід»:
private: System::Void вихiдToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e) {
this->Close();
}
6.7 Обробник для закриття форми
private: System::Void MyForm_FormClosing(System::Object^ sender,
System::Windows::Forms::FormClosingEventArgs^ e) {
if (textBox1->Modified == false) return;
auto MeBox = MessageBox::Show("Текст був змiнений. \nЗберегти змiни?",
"Простий редактор", MessageBoxButtons::YesNoCancel,
MessageBoxIcon::Exclamation);
if (MeBox == Windows::Forms::DialogResult::No) return;
if (MeBox == Windows::Forms::DialogResult::Cancel) e->Cancel = true;
if (MeBox == Windows::Forms::DialogResult::Yes)
{
if (saveFileDialog1->ShowDialog() == Windows::Forms::DialogResult::OK)
{
Save(); return;
}
else e->Cancel = true;
}
}
};
}
7 Запустити програму, набрати текст в текстовому вікні і занести файл під якимнебудь іменем в певну папку. Потім ще раз запустити програму і відкрити файл,
який перед цим був занесений в папку (рис.5).
Рис.5
Змінити зміст файлу і вибрати «вихід» Рис.6.
Рис.6
Якщо натиснути «так», з’явиться необхідність вказати з яким іменем і в яку папку
записувати змінений файл. При введенні того ж самого імені, яке було у файлу,
виникне попередження, що такий файл уже існує і чи можна його змінювати (рис.7).
Рис.7.
Така ж сама реакція при натисканні на «хрестик» при закритті форми.
Таким чином створений простий текстовий редактор працює.
Вибрати «зберегти як» і занести створений файл під якимось іменем в вибрану
папку.
Приклад 3.
Створення Web- браузера
Постановка задачі
Створити браузер із наступними функціями :
1)
2)
3)
4)
Перехід на сайт, адреса якого вказана в текстовому полі;
Перехід на сторінку вперед або назад;
Вибір одного із сайтів, які знаходяться в списку елемента ComboBox;
Виводити на друк сторінку, яка відображається.
Послідовність дій
1 Створити проект graf_Web_Browse в D:\2021\II_CURS\GRAFIKA.
На формі розмістити 5 «button», і по одному елементу textBox, ComboBox,
WebBrowser (рис.1).
Увага! Якщо WebBrowse розтягнеться на всю форму, треба натиснути на
стрілочку «Відкріпити в батьківському контейнері».
2 У властивість Anchor елемента textBox1 крім наявних “Top” і “Left ” добавити
“Bottom”, “Right” (клацнути по не закрашеним лініям , які розташовані вниз та
вправо) .
У властивості "Text" задати усім кнопкам "button" вілповідні назви:
Button1 – "Пошук";
Button2 – "->";
Button3 – "<-";
Button4 – "Home";
Button5 – "Print";
Вид форми програми приведено на рис.1.
Рис.1
3 У властивості Text вікна comboBox1 розмістити текст «Вибране».
Крім того, треба занести в нього список вибраних сайтів:
www.vk.com
olocoder.ru
youtube.com
google.com
Gmail.com
sumdu.edu.ua
Для цього треба вибрати властивість Items і клацнути по трьом крапкам, які
з’являться справа. Внести список у вікно (рис.2).
Рис.2
Натиснути на кнопку OK.
4 Створити і заповнити обробники:
private: System::Void MyForm_Load(System::Object^ sender, System::EventArgs^ e) {
this->Text="MyBrowser";
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
webBrowser1->Navigate(textBox1->Text);
}
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
webBrowser1->GoForward();
}
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
webBrowser1->GoBack();
}
private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) {
webBrowser1->Navigate("olocoder.ru");
}
private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) {
this->webBrowser1->Print();
}
private: System::Void comboBox1_SelectedIndexChanged(System::Object^ sender,
System::EventArgs^ e) {
switch (comboBox1->SelectedIndex)
{
case 0:webBrowser1->Navigate("www.vk.com"); break;
case 1: webBrowser1->Navigate("olocoder.ru"); break;
case 2: webBrowser1->Navigate("www.youtube.com"); break;
case 4:webBrowser1->Navigate("www.gmail.com"); break;
case 5:webBrowser1->Navigate("www.sumdu.edu.ua"); break;
}
5 Програма готова. На рис.3 приведено приклад її виконання.
Рис.3
Можна перевірити роботу кнопок. Зокрема, набрати в текстовому вікні
Ukr.net і натиснути «Пошук». Результат приведено на рис.4.
Рис.4.
Програма працює відповідно до завдання.
Контрольні питання
1) Як розмістити текст в PictureBox?
2) В якій послідовності створюється текстовий редактор?
3) Як створити Web-браузер?
Зміст звіту
1) Привести коди обробників подій для кожної програми.
Download