|
Программирование >> Автоматически обновляемые приложения
104 Глава 5 \ Листинг 5.8. Задаем позицию формы на экране Вьгоодим окно в нижнем правом углу экрана this.SetBounds(Screen.GetWorkingArea(this).Width - this.Width, Screen.GetWorkingArea(this).Height - this.Height, this.Width, this.Height); Как программно свернуть или развернуть форму? у формы есть свойство windowstate, которое поможет вам решить эту задачу. Например, чтобы свернуть форму, добавьте код из листинга 5.9. \ Листинг 5.9. Программное сворачивание формы Свернем форму программно WmdowState = FormWindowState. Minimized; Поддержка тем рабочего стола Windows Обратите внимание, что в .NET Framework 2.0 при создании проектов с использованием Windows Forms поддержка визуальных тем рабочего стола Windows ХР включена по умолчанию. Если вернуться чуть-чуть назад, то мы увидим, что в .NET Framework 1.0 для использования визуальных тем приходилось писать специальный файл манифеста, а в .NET Framework 1.1 этот процесс немножко упростился благодаря новому методу Application.EnableVisualStyles. В Visual Studio 2005 программисты Microsoft пошли еще дальше. Метод EnableVisualStyles вставляется автоматически в каждый новый проект. Убедиться в этом вы можете самостоятельно, открыв код файла Program.cs, приведенный в листинге 5.10. ; Листинг 5.10. Поддержка тем рабочего стола Windows (код из файла \ Program.cs) static class Program / <suinmary> / The main entry point for the application. / </summary> Как узнать, используются ли темы Windows ХР? Чтобы узнать, используются ли на компьютере визуальные темы ХР или пользователь предпочитает работать с классическим видом, можно воспользоваться помощью функции Windows API isThemeActive. Как это сделать, показано в листинге 5.11. ;,Листинг5.11. Использование тем Windows ХР : [Dlllmport( uxtheme.dll )] static extern bool IsThemeActive(); Вьюодим сообщение в заголовке формы this.Text = Тема ХР: + IsThemeActive().ToString (); Как отобразить форму без передачи ей фокуса? в .NET Framework 2.0 у форм появилось новое свойство showwithoutActivation. Название свойства говорит само за себя. Если при выводе на экран окно не активно, то свойство возвращает True, в противном случае False. По умолчанию окно получает фокус (то есть значение свойства равно False). Иногда требуется вывести окно без передачи ему фокуса, чтобы не мешать пользователю продолжать работу с основным окном. Вспомните стандартный* фафический редактор Paint из состава Windows. Если вы выбираете инструмент Надпись, то появляется окно, позволяющее настроить шрифт. При этом новое окно не отбирает фокус. Учтите, что свойство доступно только для чтения. Вы можете изменить значение свойства, только переопределив свойство ShowwithoutActivation В своей форме. Для иллюстрации того, как это сделать, создадим две формы. На первой (и основной) форме добавим кнопку, щелчок по которой будет вызывать вторую форму (листинг 5.12). [STAThread] static void Main() { Application.EnableVisualStyles (); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Forml()); 106 Глава 5 I Листинг 5.12. Показываем вторую форму private void button2 Click(object sender, EventArgs e) { Показываем вторую форму Form2 secondform = new Form2(); secondform.ShowO ; Если мы сейчас запустим пример и щелкнем по кнопке, то вторая форма откроется и станет активной. Переопределим свойство showwithoutActivation во второй форме, чтобы решить проблему. г.....................................................................................................;.......... ................................................. ......................................... ................................ \ Листинг 5.13. Переопределение свойства ShowWithoutActivation protected override bool ShowWithoutActivation { get { return true; Запустите проект и убедитесь, что вторая форма теперь не получает фокус. Примечание Если вы вынуждены писать программы с использованием NET Framework 1.1, то вам придется использовать функцию Windows API showwindow с параметром SW SHOWNA. Как не отображать форму при запуске программы? Вы хотите запустить приложение, не показывая саму форму? Первое, что приходит в голову- присвоить свойству формы Visible значение False. Проблема только в том, что такого свойства нет в редакторе свойств. Более правильное решение - установить форму невидимой во время события Load. Но при таком решении, все равно, форма на какое-то время появится на экра-
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |