Как закрыть форму не открывая ?...

olegov
Дата: 22.05.2006 21:25:48
Такой вот каламбур.
Нужно что бы при определенных обстоятельствах вызываемая форма так и не открылась

Пробовал:

в Load прописать CLose(), форма успевает "маргнуть на экране"
в public partial class Form1 : Form прописать CLose(), естесственно вызывает ошибку.
Goster
Дата: 22.05.2006 21:29:20
Как вариант - генерировать Exception в конструкторе. Но это некрасивое решение. Как сделать правильно - сейчас сам пытаюсь разобраться. Но уверен - истина где-то рядом=)
olegov
Дата: 22.05.2006 21:33:13
Уже была мысь с ошибкой, но эт совсем за рамки вон. Должно быть решение..
Roman Brunets
Дата: 22.05.2006 21:48:46

Здравствуйте olegov, Вы писали :
> Такой вот каламбур.
> Нужно что бы при определенных обстоятельствах вызываемая форма так и не
> открылась

Не открывать ее???
То есть с Load все сунуть в конструктор и перед .Show подумать?

> в Load прописать CLose(), форма успевает "маргнуть на экране"

Открывать свернутой?

Posted via ActualForum NNTP Server 1.3

olegov
Дата: 22.05.2006 21:57:21
Roman Brunets

Здравствуйте olegov, Вы писали :
> Такой вот каламбур.
> Нужно что бы при определенных обстоятельствах вызываемая форма так и не
> открылась

Не открывать ее???
То есть с Load все сунуть в конструктор и перед .Show подумать?

> в Load прописать CLose(), форма успевает "маргнуть на экране"

Открывать свернутой?
Posted via ActualForum NNTP Server 1.3


Можно и в перед Show но тогда объем кода сильно увеличивается, она много откуда вызывается. Открывать свернутой то же не вариант. На не быстрых компах кубик внизу маргнет.
Если не найду решения сделаю вызов через свой класс (UsetControl) там обработаю все и решу открывать или нет. Но не думаю что нет вариантов обработать прямо в форме.

Хотя тут существует та же и проблема с запуском самого приложения:

Сначала идет заставка
Потом авторизация пользователя
Во время авторизации пользователь может отказаться от работы
соответственно MainFirm то же не должна стартовать. Тут уже сложнее.
Roman Brunets
Дата: 22.05.2006 22:20:44

Здравствуйте olegov, Вы писали :
> Можно и в перед Show но тогда объем кода сильно увеличивается, она много
> откуда вызывается. Открывать свернутой то же не вариант. На не быстрых
> компах кубик внизу маргнет.

Я вот чего не пойму -- на форме что, бизнес-логика зашита??? Тады ой.
Если нет -- прерывание загрузки формы суть exception. Не должен зависеть
UI от казусов бизнес-логики.

> Если не найду решения сделаю вызов через свой класс (UsetControl) там
> обработаю все и решу открывать или нет. Но не думаю что нет вариантов
> обработать прямо в форме.

А где? В Load форма уже прорисовалась, в конструкторе ты ее нормально не
закроешь.

> соответственно MainFirm то же не должна стартовать. Тут уже сложнее.

Тут как раз проще -- Application.Exit() (или Close, не помню).

Posted via ActualForum NNTP Server 1.3

olegov
Дата: 22.05.2006 22:36:49
Здравствуйте olegov, Вы писали :
> Можно и в перед Show но тогда объем кода сильно увеличивается, она много
> откуда вызывается. Открывать свернутой то же не вариант. На не быстрых
> компах кубик внизу маргнет.

>>Я вот чего не пойму -- на форме что, бизнес-логика зашита??? Тады ой.
>>Если нет -- прерывание загрузки формы суть exception. Не должен зависеть
>>UI от казусов бизнес-логики.


> Если не найду решения сделаю вызов через свой класс (UsetControl) там
> обработаю все и решу открывать или нет. Но не думаю что нет вариантов
> обработать прямо в форме.

>>А где? В Load форма уже прорисовалась, в конструкторе ты ее нормально не
закроешь.

Да, какая то логика зашита. Я в форму передаю критерий отбора данных (он по условиям может быть разным), если критерий не передан форма не должна открываться. Но это черт с ним, решил через промежуточный класс вызова формы. Все нормально и усилий две строчки.


> соответственно MainFirm то же не должна стартовать. Тут уже сложнее.

Тут как раз проще -- Application.Exit() (или Close, не помню).


А вот ту фих... Close() так же вызывает ошибку, Application.Exit() не закрывает приложение, главная форма (как это не странно) спокойно стартует дальше.
olegov
Дата: 22.05.2006 22:39:06
Да и с главной формой приложения сделал запуск через try/cath вроде нормально работает.
Roman Brunets
Дата: 22.05.2006 22:41:03

Здравствуйте olegov, Вы писали :
> А вот ту фих... Close() так же вызывает ошибку, Application.Exit() не
> закрывает приложение, главная форма (как это не странно) спокойно
> стартует дальше.

Треды кто абортить будет?

Posted via ActualForum NNTP Server 1.3

olegov
Дата: 22.05.2006 22:45:29
Roman Brunets

Здравствуйте olegov, Вы писали :
> А вот ту фих... Close() так же вызывает ошибку, Application.Exit() не
> закрывает приложение, главная форма (как это не странно) спокойно
> стартует дальше.

Треды кто абортить будет?
Posted via ActualForum NNTP Server 1.3


Чуть подробнее про треды, я еще не шибко великий мастер в C#....