Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_4_C#.doc
Скачиваний:
37
Добавлен:
12.02.2016
Размер:
1.07 Mб
Скачать

Створення вікна вибору файлу в c# .Net .

Щоб користувач міг вибирати файл для завантаження через стандартне в windows вікно завантаження файлів, ми виконаємо наступні дії. Перейдіть до вікна ToolBox (Панель елементів). Тепер перетягніть елемент керування OpenFileDialog (малюнок 15) на форму.

Малюнок 15.

Місце розташування, куди ви перетягнете елемент не важливо - він додасться в поле під вікном, до інших специфічних об'єктів. Малюнок 16.

Малюнок 16.

Як видно з малюнка 16, до додаткових елементів, уже встановлених на наше вікно (меню й ToolBox) додався ще й елемент openFileDialog1. Тепер ми реалізуємо код відкриття вікна вибору файлу, з необхідними нам параметрами. Якщо ви ще не створили оброблювачі натискання на кнопки завантаження й елементи меню, так само призначені для завантаження – зробіть це, за допомогою подвійних кліків по них. Код згенерованих функцій виглядає в такий спосіб:

// обробка кнопки меню "завантаження - у форматі jpg" private void вФорматеJPGToolStripMenuItem_Click(object sender, EventArgs e) {

} // обробка кнопки меню "завантаження - у форматі png" private void вФорматеPNGToolStripMenuItem_Click(object sender, EventArgs e) {

} // обробка кнопки №2 на панелі private void toolStripButton2_Click(object sender, EventArgs e) { } // обробка кнопки №3 на панелі private void toolStripButton3_Click(object sender, EventArgs e) { }

Тепер напишемо наступну функцію LoadImage.

Відкриття вікна вибору файлу й завантаження зображення в c# .Net.

Image MemForImage; // функція завантаження зображення private void LoadImage(bool jpg) {

// директорія, що буде обрана як початкова у вікні для вибору файлу openFileDialog1.InitialDirectory = "c:"; // якщо будемо вибирати jpg файли if (jpg) {

// встановлюємо формат файлів для завантаження - jpg openFileDialog1.Filter = "image (JPEG) files (*.jpg)|*.jpg|All files (*.*)|*.*";

} else {

// встановлюємо формат файлів для завантаження - png openFileDialog1.Filter = "image (PNG) files (*.png)|*.png|All files (*.*)|*.*";

} // якщо відкриття вікна вибору файлу завершилося вибором файлу й натисканням кнопки ОК if(openFileDialog1.ShowDialog() == DialogResult.OK) {

try // безпечна спроба {

// намагаємося завантажити файл із ім'ям openFileDialog1.FileName - обраний користувачем файл. MemForImage = Image.FromFile(openFileDialog1.FileName); // установлюємо картинку в поле елемента PictureBox pictureBox1.Image = MemForImage;

} catch (Exception ex) // якщо спроба завантаження не вдалася {

// виводимо повідомлення із причиною помилки MessageBox.Show( "Не вдалося завантажити файл: " + ex.Message);

}

}

}

Функція LoadImage як вхідний параметр буде отримувати прапор про те, який фільтр для вибору файлів необхідно вибрати. Далі викликається вікно вибору файлу і якщо воно при закритті повертає результат DialogResult.OK, то ми намагаємося завантажити й установити обрану картинку в поле PictureBox. Конструкція try catch необхідна нам тут з наступної причини: якщо завантаження пройшло невдало, те ми одержимо повідомлення про помилку, але на виконання програми це не вплине і ми зможемо продовжити її виконання. Далі , функції оброблювачі натискань пунктів меню й кнопок на панелі керування реалізують виклик функції завантаження з необхідним прапорцем.

// обробка кнопки меню "завантаження - у форматі jpg" private void вФорматеJPGToolStripMenuItem_Click(object sender, EventArgs e) {

// завантажуємо jpg файли LoadImage(true);

} // обробка кнопки меню "завантаження - у форматі png" private void вФорматеPNGToolStripMenuItem_Click(object sender, EventArgs e) {

// завантажуємо png файли LoadImage(false);

} // обробка кнопки №2 на панелі private void toolStripButton2_Click(object sender, EventArgs e) {

// завантажуємо jpg файли LoadImage(true);

} // обробка кнопки №3 на панелі private void toolStripButton3_Click(object sender, EventArgs e) {

// завантажуємо png файли LoadImage(false);

}

Тепер якщо відкомпілювати додаток (F5), те можна спробувати завантажити зображення. Зверніть увагу, що завантаження png24 з альфоканалом – теж працює (малюнок 17). Як бачите, наше зображення масштабується під розмір елемента PictureBox. Тому зараз ми додамо в проект ще одну форму, на якій ми будемо відображати зображення в його справжньому розмірі.

Малюнок 17.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]