Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Загрузка формы без её отображения Добавлено: 09.01.06 02:37  

Автор вопроса:  Neco | Web-сайт: neco.pisem.net | ICQ: 247906854 
Когда форма загружается, она всегда становиться видимой, а мне это не нужно. Приходится ставить Hide в других событиях, но при этом она всё равно сначала появиться, а потом исчезает - бесит. 8)
Как это можно сделать? В VB6 это лечилось Visible=False в процедуре OnLoad, а здесь не лечится...

Ответить

  Ответы Всего ответов: 15  

Номер ответа: 1
Автор ответа:
 KEP



Вопросов: 44
Ответов: 119
 Профиль | | #1 Добавлено: 09.01.06 04:59

Что просто спрятать форму не катит ME.HIDE СТРАННО :)
Сделай ее маааааленким размером тогда не увидешь


me.height=1
me.widht=0

me.scaleheight=1
me.scalewidht=0

me.hide

Ответить

Номер ответа: 2
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #2 Добавлено: 10.01.06 23:53
ну, КЕР, загнул :)

Попробуй АПИшку ShowWindow

Ответить

Номер ответа: 3
Автор ответа:
 Lexa



Вопросов: 2
Ответов: 5
 Профиль | | #3 Добавлено: 11.01.06 01:04

Почему при событии "загрузка формы", если пропишешь me.hide() или Me.Visible = false вылетает ошибка ?

Ответить

Номер ответа: 4
Автор ответа:
 KEP



Вопросов: 44
Ответов: 119
 Профиль | | #4 Добавлено: 11.01.06 03:04
Если ты ее прячиш, она быстро появляется а потом исчезает. Значит гдето в разделе загрузки у тебя прописано обращение к ней! Вот так! Так же мучался. пока все строки не проверил

Ответить

Номер ответа: 5
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #5
Добавлено: 11.01.06 18:09
Попробуй АПИшку ShowWindow

Неуправляемый код - дядя Билли завещал от него отказываться. Да и хочется стандартными методами, а то так можно и до ручного создания формы докатиться.

Ответить

Номер ответа: 6
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #6
Добавлено: 11.01.06 18:13
Если ты ее прячиш, она быстро появляется а потом исчезает. Значит гдето в разделе загрузки у тебя прописано обращение к ней! Вот так! Так же мучался. пока все строки не проверил

Да у меня подразумевается обращение к ней - к примеру, мне нужен какой-либо элемент проинициализировать, но при этом совсем не надо, чтобы форма сразу отображалась.
В общем, кое-где увидел, что надо попросту создавать форму в Sub Main командой New, но при этом не делать Application.Run (MyFormClass).
Пока не пробовал (и не знаю чем тогда будет заниматься мой поток), но думаю разберусь...

Ответить

Номер ответа: 7
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #7 Добавлено: 12.01.06 00:07
ручного создания формы докатиться.
ну и куул :) хотябы формочка будет отображаться только тогда когда тебе это надо -)

Ответить

Номер ответа: 8
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #8
Добавлено: 13.01.06 02:22
Почему при событии "загрузка формы", если пропишешь me.hide() или Me.Visible = false вылетает ошибка ?

Не знаю, что за ошибка (лучше, если бы ты её описание привел), но возможно, что самой формы ещё нет, а ты её уже используешь. 8)

Ответить

Номер ответа: 9
Автор ответа:
 Lexa



Вопросов: 2
Ответов: 5
 Профиль | | #9 Добавлено: 13.01.06 22:30
Ошибка:

An unhandled exception of type 'System.ComponentModel.Win32Exception' occurred in system.windows.forms.dll

Additional information: Error creating window handle.

Код:

 Private Sub objFormFindParts_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

       
        boolIsSearched = False
        Me.Text = FCaption
        Me.Visible = False

Ответить

Номер ответа: 10
Автор ответа:
 Lexa



Вопросов: 2
Ответов: 5
 Профиль | | #10 Добавлено: 13.01.06 22:35

Me.Hide - Анологично

Ответить

Номер ответа: 11
Автор ответа:
 student-uni



Вопросов: 122
Ответов: 257
 Профиль | | #11 Добавлено: 20.01.06 17:01
Me.Height = 0
        Me.Width = 0

Ответить

Номер ответа: 12
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #12
Добавлено: 20.01.06 21:54
Additional information: Error creating window handle.

Такая ошибка у меня вылезала, когда я где-нибудь по нечайке удалял строки типа MyBase.SomeLoadSub т.е. не давал создать Васе его форму.
Me.Height = 0
        Me.Width = 0

Не знаю - получится ли. Имхо, ошибка вылезет.
Но в любом случае я уже справился с проблемой тем образом, о котором говорил.

Ответить

Номер ответа: 13
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #13 Добавлено: 09.02.06 01:27
Блин.. не смог я промолчать и пройти мимо этого топика... Вы уж простите ламера.. но я все равно СКАЖУ!!
Парни,чего вы тут чушь городите???
Какие me.widht=0 или me.visible=false ??? а еще и ShowWindow... Вы еще посоветуйте ему прозрачность формы установить в ноль!!! ))) да ему всего-то надо было..

Когда форма загружается, она всегда становиться видимой, а мне этого не надо


Кто такое сказал,что форма при загрузке ВСЕГДА становится видимой? Она становится видимой только после вызова метода Show!! А пока его не вызвали.. форма ЗАГРУЖЕНА и даже не пытается показаться!! Вы не поверите, я после этого топика.. даже сам в себе сомневаться начал и проверил это дело.. Достаточно одной строки..
Dim f as New MyForm

что уже само по себе вызывает загрузку формы. И при этом форма вполне рабочая и совершенно не видна!!! и даже не мигает.. :-)))))))

Ответить

Номер ответа: 14
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #14 Добавлено: 09.02.06 02:06
А что касается твоей ошибки..

An unhandled exception of type 'System.ComponentModel.Win32Exception' occurred in system.windows.forms.dll

Additional information: Error creating window handle


То тут ясно написано,что ошибка создания handle.. Другими словами форма находится только в в ПРОЦЕССЕ СОЗДАНИЯ!! и естесственно, еще не имеет хэндла потому что он еще не создан!! А ты уже пытаешь отправить несущеествующему окну сообщение..
По всей видимости у тебя VS 2003,поскольку я проверял в 2005 студии.. Me.Hide & Me.Visible=False в событии Load не вызывают ошибки.. но и НЕ РАБОТАЮТ!! форма появляется как ни в чем не бывало.. В принципе,это равносильно тому,что иницировать событие класса в процедуре Sub New. и ошибки нет.. и событие не срабатывает, поскольку причина та же.. класс находится в процессе создания..

Ответить

Номер ответа: 15
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #15
Добавлено: 11.02.06 16:27
Мля ну ты читай ответы ПОМИМО вопроса:
Но в любом случае я уже справился с проблемой тем образом, о котором говорил.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам