Hur får man en form synlig och osynlig? Knappar och sånt går ju med Visible=false Du skapar ett formulär i knappens click-event : Jag kanske uttryckte mig oklart. Jag har ett antal former färdiga som jag vill skall bli synliga eller osynliga när man klickar på olika knappar i huvudformen. Alltså de skall inte skapas i runtime. Du har fortfarande inte varit så klar: Om du bara vill dölja dina "former" :-) för användarens öga och inget annat så kan man t ex sätta formulärets genomskinlighet till 0. I VB6 kunde man sätta Visible till False i Properties. Det verkar vara borta i VB.Net. Det finns däremot kvar för knappar till exempel. När jag skriver Me. så kommer ju en lista på alternativ man kan ange, men där finns inte Visible. Är det kanske meningen att man skall använda Opacity istället? Det borde vara Hide() som ska användas. Det är nog dags att du klipper in lite kod och visar vad du menar. Om du varken ser Visible eller Hide() så är det något annat som är fel. Jag har två former. Form1 är den som syns när programmet startar formen Tall syns inte. Nu har jag en Button där jag vill att Tall skall bli synlig och Form1 osynlig. Kontrollera om du har option strict på. Det skall du ha, annars Tack för pekpinnen! Nu funkar det men det var lurigt tycker jag. Vad är vitsen med att ändra från VB6 så att man först måste delarera en New Form innan man kan sätta Visible= True? att det ska stämma med övriga .nets programmeringsmodell.Visible
Jag vill kunna ladda en form från en knapp.Sv: Visible
<code>
Dim myForm as new Form1
myForm.ShowDialog()
' eller
' myForm.Show()
</code>
Formuläret kan du sedan stänga genom att anropa Close()-metoden, antingen i det nya formuläret med
<code>
Me.Close()
</code>
eller i huvudformuläret genom att skriva
<code>
myForm.Close()
</code>Sv: Visible
Sv: Visible
Jag förutsätter att en form är ett formulär, dvs något som ärver av System.Windows.Forms.Form klassen.
Eftersom allt som ärver Form även ärver Control så har du tre vägar till synligt/osynligt.
1. Show()
2. Hide()
3. Visible
Alla tre implementeras av Control klassen.
Sätt tex myForm.Visible = False
för att dölja eller
eller
If myForm.Visible Then ....
för att kontrollera om den syns eller inteSv: Visible
<code>
frm1.Opacity = 0
</code>Sv: Visible
Sv: Visible
Då döljs formuläret men fomruläret finns fortfarande kvar i minnet...Sv: Visible
Sv: Visible
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Tall.Visible = True
Me.Visible=False
End Sub
Detta är fel.Sv: Visible
får du problem med late binding mm.
(finns under properties på ditt projekt)
Den kod som du har klistrat in ser jag inget fel på om Tall är ett
objekt men från dina kommentarer så inser jag att du inte förstår
skillnaden mellan typer och objekt. Tall är därför en typ och på
typer kan du bara exekvera Shared metoder.
Me = referens till ditt nuvanarande objekt i din kod sannolikt
av typen Form1.
Tall typ för ditt andra formulär eller kontroll, inte ett objekt vilket
innebär att du inte kan anropa Visible på den.
du bör göra följande:
1. deklarera ett medlemsfält tallForm
Private tallForm as New Tall
i din click ska du sen skriva:
tallForm.Visible = True då ska du se att ditt andra forumlär kommer att visas.
Efter detta bör du sätta dig på skolbänken och lära dig grunderna i objektorientering.
//DanielSv: Visible
Jag är van vid VB6 och har man där två former Form1 och Form2 så kan man sätta Form2.Visible= True. När ni nu säger att man även kan göra det i VB.Net och det inte funkar på samma sätt så måste jag ju fråga. Tall är detsamma som Form2. Så Former är alltså typer?Sv: Visible
Sv: Visible
vb har, på utvecklarnas bekostnad, tagit steget från enklare
RAD språk till riktigt utv. språk.