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

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

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

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

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

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

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

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

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

Наилучшие!
...
Рейтинг: 0 / 0
Как лучше организовать работу с формами
    #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
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как лучше организовать работу с формами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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