Хочешь создать свой собственный, крупный проект? На этом уроке мы заложим основу твоей супер-программы — Портфолио, которое соберёт в себя все твои лучшие программы. Этот проект будет расширяться по мере создания новых программ.
Задание: Создать программу-каталог своих лучших работ на C#. Обновлять каталог после каждой созданной программы.
Дата отправки отчёта:
2 марта 2016 г.
Задание выполнено: за
1 час. 00 мин.
Чему научился:
Работать с ресурсами,открывать программно любое приложение,веб-сайт.
Научился: 1) Повторил использование Process.Start для запуска приложений.
2) TabControl.
3) Самостоятельно изучал различные способы вывода информации на форму. Трудности: Определиться с интерфейсом портфолио. Сначала сделал все как в уроке, кроме момента, когда подключались классы из других проектов. Мне данный подход не понравился, потому что надо помнить обо всех связях, ресурсах и прочих мелочах тех проектов, которые я разрабатывал несколько месяцев назад. Вручную добавлять исходники по одному не комильфо. Поэтому я целиком импортировал свои проекты в "solution", добавил reference на них. В итоге, нет проблем с namespace, все локально и работает как надо.
Далее я вернулся к первому варианту, где мы просто запускаем исполняемый файл из папки "Exec". Это решение на мой взгляд лучше подходит для портфолио. Здесь это решение можно расширить, используя вместо исполняемого файла инсталятор данного приложения или перенаправить пользователя на нужную страницу в интернете для скачивания программы.
Достаточно долгое время думал над интерфейсом формы. Причина была в том, что Евгений Витольдович предложил добавлять новые приложения в портфолио. Я задумался, как это можно сделать удобнее. В итоге, перебрав разные варианты, остановился на использовании компонента ListBox для динамического вывода списка приложений. Предложенный в уроке табличный вариант я убрал, так как было неудобно вручную добавлять картинки и описание игр за границы формы. Вместо этого у меня один PictureBox, выводящий картинку той игры, которая выбрана в списке по событию SelectedIndexChanged. Описание выделил в единичный TextBox, текст которого так же зависит от выбранного элемента в списке игр. Все данные хранятся в коллекции List<>, которые по-хорошему надо бы загружать из файла конфигурации, а потом из конкретных файлов описания игр, но это я остановил на будущее. Пока что вся текстовая информация содержится в константах кода программы.
Спасибо за урок)
Научился: Отработал навыки пользования Ресурсами, узнал что можно не только картинки хранить в Ресурсах сборки. Узнал некоторые примочки настройки формы. Трудности: разобраться правильно с namespace я вставил такую функцию:
private void zapusk_exe(byte[] res)
{
//процедурка создает файл из солюшена, запускает его, и после его закрытия удаляет запускаемый файл
File.WriteAllBytes("my_file123123123123132343222.exe",res);//чтобы не совпало с уже существующим именем
Process pr=new Process();
pr.StartInfo = new ProcessStartInfo("my_file123123123123132343222.exe");
pr.Start();
pr.WaitForExit();
File.Delete("my_file123123123123132343222.exe");
}
запуск происходит:
zapusk_exe(Properties.Resources.SecretPicture);
можете использовать мою примочку, если пригодится!