|
С# Средство разработки на платформе .Net |
27.12.2009, 17:09
|
#1
|
Бывалый
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений (для 450 пользователей)
|
WinForms
Вообщем делаю примитивную программу которая будет строить примитивные графики функций. Пытаюсь сделать возможность построения нескольких графиков. В C# недавно, так что есть несколько вопросов:
1) Где лучше хранить список графиков? (Всмысле хранить экземпеляры класса графика) Сейчас я просто запихиваю их в объект ArrayList, а его в статическое поле главного окна.
2) Допустим у меня есть первое (главное) окно. И есть второе окно (пока что просто сделал его в дизайнере). Мне надо чтобы при определенном действии (нажатие на кнопку например) это окно открывалось, и пока оно будет открыто, управление главному окну невозможно будет передать, как это сделать? (Вообщем если проще то пример: открываем окно About и пока мы его не закроем перейти на главное окно нельзя, при этом окно About должно быть на переднем плане). Мне это надо чтобы открывать окно "свойств графика" (Кстати, если кто-то пользовался прогой Advanced Grapher то там именно так и сделано).
|
(Offline)
|
|
27.12.2009, 17:11
|
#2
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: WinForms
там есть вроде параметр модальности в свойствах формы. посмотри хорошенько
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.12.2009, 17:28
|
#3
|
Бывалый
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений (для 450 пользователей)
|
Ответ: WinForms
Не нашел такого в свойствах (которые в дизайнере). Есть свойство Modal, но оно только для чтения.
|
(Offline)
|
|
27.12.2009, 17:33
|
#4
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: WinForms
ну тогда вариант просто при открытии второй формы первой форме ставить доступность(Enable) -false. а когда закрывается вторая форма первой вернуть Enable тру
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.12.2009, 18:25
|
#5
|
Бывалый
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений (для 450 пользователей)
|
Ответ: WinForms
Недовариант, хотя если другого не будет придется пользоваться этим =)
Недостатки:
1) Первая форма принимает серые оттенки.
2) Если скрыть оба окна (minimize) и в открыть главное, дочернее остается скрытым, ну и как следствие - дочернее не всегда находится перед главным.
|
(Offline)
|
|
27.12.2009, 18:59
|
#6
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: WinForms
тогда юзай MIDI формыю. они кажется соответствуют тем задачам которые ты поставил
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.12.2009, 19:26
|
#7
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: WinForms
Сделай вот так:
form2.ShowDialog(form1);
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.12.2009, 19:32
|
#8
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: WinForms
Чтобы хранить типизированные списки используй коллекции типа List<Тип> Имя_переменной = new List<Тип>();
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.12.2009, 22:00
|
#9
|
Бывалый
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений (для 450 пользователей)
|
Ответ: WinForms
спс PAX
Фишка с ShowDialog идеально то что надо!
Кстати чем List отличается от ArrayList?
И кстати где лучше хранить список то (не важно какой)? в статик поле?
Последний раз редактировалось h1dd3n, 27.12.2009 в 23:01.
|
(Offline)
|
|
27.12.2009, 23:01
|
#10
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: WinForms
cтатик поля - поля которые создаются при первом обращени к классу. и являются добщими для всех экземпляров класса. идеально подходит для хранения всех экзепляров этого класса, а также общих переменных, которые можно модифицировать и/или получать значения из других классов, не обращаясь к конкретному экземпляру
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
28.12.2009, 00:19
|
#11
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: WinForms
На сколько я помню ArrayList не типизированный список, т.е. содержит объекты как object. Если не хочется приводить типы каждый раз при обращении к массиву, то пользуются типизированными списками, у которых при объявлении задается тип в угловых скобках. Элементы такого списка будут иметь твой тип, соответственно приведения типов не нужно.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:01.
|