Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как лучше организовать работу с формами / 7 сообщений из 7, страница 1 из 1
16.08.2004, 17:41
    #32651548
Serg****
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше организовать работу с формами
Может кто уже сталкивался с подобной задачей?

На главной форме есть список пользователей, при двойном клике на пользователе открывается окно с его инфой.

Как лучше организовать:
если уже инфа на пользователя открыта, то надо передать этому окно фокус, а не создавать заново
если же инфа не открыта, то открыть окно с инфой.

Как лучше ?
Вариант 1 : Завести массив и при открытии окна с инфой сохрянять на него ссылку, а при закрытии удалять

Есть другие варианты?
...
Рейтинг: 0 / 0
16.08.2004, 17:46
    #32651566
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше организовать работу с формами
Ты собираешься держать на каждого пользователя по окну? :)

Первый раз загружай окно, скрывай его при выходе, а дальше просто показывай и загружай в него новые данные по необходимости.

Magnus
...
Рейтинг: 0 / 0
16.08.2004, 17:56
    #32651594
Serg****
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше организовать работу с формами
А как мне обратиться к окну, после того, как я его скрыл?
я же делаю типа
Form2 info = new Form2();
info.Visible = true;

Для каждого пользователя при клике на нем, у меня же нет ссылки на него, как его найти?
...
Рейтинг: 0 / 0
16.08.2004, 17:58
    #32651597
Serg****
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше организовать работу с формами
Окно у меня не модальное, может одновременно открыто несколько окон информации
...
Рейтинг: 0 / 0
16.08.2004, 18:05
    #32651619
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше организовать работу с формами
держи ссылки на созданные формы в Hashtable в гл. форме

сами формы не закрывай, а делай что то такое:
Код: plaintext
1.
2.
3.
private void frmUser_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{ this.Hide();
  e.Cancel=true;		
}
...
Рейтинг: 0 / 0
16.08.2004, 22:43
    #32651812
ctmike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше организовать работу с формами
А еще лучше не открывай окошко новое вообще а используй подчиненную талицу или пропетигрид, имхо запар мньше ;))

Наилучшие!
...
Рейтинг: 0 / 0
17.08.2004, 08:47
    #32652010
Valera-x
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше организовать работу с формами
Можно еще так.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
public class Form1 : System.Windows.Forms.Form
	{
		 /// <summary> 
		 /// Required designer variable. 
		 /// </summary> 
		private System.ComponentModel.Container components = null;
		private System.Windows.Forms.Button button1;
		private System.Windows.Forms.DataGrid dataGrid;
		private System.Windows.Forms.Button button2;
		private System.Windows.Forms.Button buttonAdd;
		private System.Windows.Forms.Button button3;

		private Hashtable UserViewTable=new Hashtable();
............................
		private void button3_Click(object sender, System.EventArgs e)
		{
			User user=(User)this.dataGrid.BindingContext[this.dataGrid.DataSource,this.dataGrid.DataMember].Current;
			
			 //Проверяем наличия  в Hashtable объект(ключ) user 
			if(UserViewTable.ContainsKey(user))
			{
				object form=UserViewTable[user];
				 //Если форма не была создана или была закрыта 
				if(form==null||((Form)form).IsDisposed)		
				{
					 //Очистка мусора, т.к закрытая форма остается в памяти 
					if(((Form)form).IsDisposed)
					{
						GC.Collect();
					}
					form=  new ViewUser();
					((Form)form).Show();
				}
				else
				{

					((Form)form).Focus();
				}
			}

			else
			{
				Form viewUser= new ViewUser();
				UserViewTable.Add(user,viewUser);
				viewUser.Show();
			}
                  }
}
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как лучше организовать работу с формами / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]