powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Передача формы в метод в качестве аргумента.
25 сообщений из 27, страница 1 из 2
Передача формы в метод в качестве аргумента.
    #38848892
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для одной формы делаю так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
if (settings_form == null)
{
        settings_form = new SettingsForm();
        AddFormToPanel(settings_form);
        settings_form.BringToFront();
}
else
{
        settings_form.BringToFront();
}


Но хочется для всех поэтому пишу
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
private void HandleForm(Form form)
{
   if (form == null)
   {
        form = new Form();
        AddFormToPanel(form);
        form.BringToFront();
   }
   else
   {
        form.BringToFront();
   }
}


Понятное дело строка form = new Form(); создает пустую форму. А как передать именно мою форму?
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38848929
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7 строка form = new Form(); создает пустую форму. А как передать именно мою форму?
Создать ее.
Или хранить ссылку на уже созданную.
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38848932
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7,
Код: c#
1.
2.
3.
4.
5.
var form = new SettingsForm();
HandleForm(Form form)

var form1 = new AnuOtherSettingsForm();
HandleForm(Form form1)



Вот так можно. Но это только начало.
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38848938
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
D129jenya7,
Код: c#
1.
2.
3.
4.
5.
var form = new SettingsForm();
HandleForm(Form form)

var form1 = new AnuOtherSettingsForm();
HandleForm(Form form1)



Вот так можно. Но это только начало.
в том то и проблема что так создается пустая форма.
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849210
wamaco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7
[/src]

if (form == null)

[/src]
Понятное дело строка form = new Form(); создает пустую форму. А как передать именно мою форму?

не на null проверяй, а на существование...
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849224
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
private void HandleForm(Form form)
{
   if (form == null)
   {      
        AddFormToPanel(form);
        form.BringToFront();
   }
   else
   {
        form.BringToFront();
   }
}



Так попробуйте.
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849248
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
D129jenya7,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
private void HandleForm(Form form)
{
   if (form == null)
   {      
        AddFormToPanel(form);
        form.BringToFront();
   }
   else
   {
        form.BringToFront();
   }
}



Так попробуйте.

в этом случае сюда
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
private bool AddFormToPanel(Form frm)
{
       bool result;
       try
      {
                frm.TopLevel = false;
                frm.Parent = splitContainer1.Panel2;
                frm.Dock = DockStyle.Fill;
                frm.Visible = true;
                splitContainer1.Panel2.Controls.Add(frm);
                result = true;
      }
      catch
      {
            result = false;
       }
      return result;
}


передается нал что вызовет эксепшен.
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849262
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7,
Ну да, ну да....

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
private void HandleForm(Form form)
{
   if (form != null)
   {
        if(AlredyAddedToPanel(form) == false)
       {
             AddFormToPanel(form);
       }
        form.BringToFront();
   }
   else
   {
        //not possible 
   }
}



AlredyAddedToPanel - Надо написать.
:-)
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849275
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
D129,
нууу бэхайеха!!! фишка то в том чтобы создать форму. not possible это легче всего. :)
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849284
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гы
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  private void HandleForm<T>(T form) where T : Form, new()
        {
            if (form == null)
            {
                form = new T();
                AddFormToPanel(form);
                form.BringToFront();
            }
            else
            {
                form.BringToFront();
            }
        }
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849290
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степигы
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  private void HandleForm<T>(T form) where T : Form, new()
        {
            if (form == null)
            {
                form = new T();
                AddFormToPanel(form);
                form.BringToFront();
            }
            else
            {
                form.BringToFront();
            }
        }



супер. работает. спасибо. :)
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849553
Фотография mmnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот я никак не могу понять зачем надо передавать форму в качестве параметра, какой в этом смысл?
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849556
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mmnickВот я никак не могу понять зачем надо передавать форму в качестве параметра, какой в этом смысл?
поуправлять видимостью, положением, подписаться на события,
инжектировать свойства, зарегистрировать где либо,
мало ли зачем ещё
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849685
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Название метода конечно доставляет: "ОбработатьФорму".

А если надо будет ещё как-нибудь "Обработать"? Будет "ОбработатьФормуВерсияДва"?:)
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849705
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не очень понимаю, почему не сократить код, выведя за рамки условия фрагмент, который должен выполняться независимо от самого условия?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
private void HandleForm<T>(T form) where T : Form, new()
{
      if (form == null)
      {
            form = new T();
            AddFormToPanel(form);
      }
      form.BringToFront();
}
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849709
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меня не покидает ощущение, что подобный вопрос недавно обсуждался
http://www.sql.ru/forum/1122635/odnokratnoe-otkrytie-formy-ne-v-dialogovom-rezhime
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849813
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИзопропилМеня не покидает ощущение, что подобный вопрос недавно обсуждался
http://www.sql.ru/forum/1122635/odnokratnoe-otkrytie-formy-ne-v-dialogovom-rezhime

так вот она рабочая версия. теперь хочу ее сделать генерик.
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849818
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jenya7Где-то в степигы
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  private void HandleForm<T>(T form) where T : Form, new()
        {
            if (form == null)
            {
                form = new T();
                AddFormToPanel(form);
                form.BringToFront();
            }
            else
            {
                form.BringToFront();
            }
        }



супер. работает. спасибо. :)

таки есть проблема. каждый раз создается новый экземпляр формы. условие form == null всегда true.
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849822
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,
HandleForm это не обработать форму это... эээ... ну приблизительно скажем так - заниматься с формой - не могу привести точное русское соответствие, подозреваю его нет.
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849826
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jenya7skyANA,
HandleForm это не обработать форму это... эээ... ну приблизительно скажем так - заниматься с формой - не могу привести точное русское соответствие, подозреваю его нет.
во! гугл нам в помощь - handle = обращаться, управлять
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849837
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7jenya7skyANA,
HandleForm это не обработать форму это... эээ... ну приблизительно скажем так - заниматься с формой - не могу привести точное русское соответствие, подозреваю его нет.
во! гугл нам в помощь - handle = обращаться, управлятьНу ну... Вы и с гуглом не можете перевести толком, да?

handle something

А как Вы переводите слово Handler?
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849839
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAjenya7пропущено...

во! гугл нам в помощь - handle = обращаться, управлятьНу ну... Вы и с гуглом не можете перевести толком, да?

handle something

А как Вы переводите слово Handler?

это не корректный перевод. :)
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849846
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7skyANAпропущено...
Ну ну... Вы и с гуглом не можете перевести толком, да?

handle something

А как Вы переводите слово Handler?

это не корректный перевод. :)Вам один мат на ум приходит, когда слово Handler переводите?
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849851
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,
Вы мне лучше скажите почему форма не хендлится. :)
...
Рейтинг: 0 / 0
Передача формы в метод в качестве аргумента.
    #38849864
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7,
авторВы мне лучше скажите почему форма не хендлится. :)
у мя встречный вопрос, как бы Вы написали тест к своей говно-процедуре, что бы охватить все перемоги?
гы, И перестаньте постоянно улыбаться, у Вас лицо выгладит глупым если улыбка не к месту.
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Передача формы в метод в качестве аргумента.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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