Toon posts:

[VB.NET 2005] Form moet de focus houden

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,
ik wil graag het zo hebben dat als iemand in mijn applicatie op een ander formulier clicked dat ie daar dan niet heen gaat maar het huidige formulier blijft laten zien, dat die de focus houdt totdat er bijvoorbeeld op een button wordt geklikt of iets dergelijks. De gebruiker MOET eerst bepaalde handelingen verrichten voordat hij het formulier mag verlaten, wil de gebruiker dat eerder doen dat moet dit niet mogelijk zijn, oftewel het formulier moet de focus bewaren. Ik heb al aantal uur op i-net gezocht maar het enige wat ik vind is TopMost en iets van Me.Owned of Me.Activiate dat soort dingen maar die doen alles behalve wat ik wil. Weet iemand hoe ik dit kan doen ? Wat denk ik ook belangrijk is, is op welk form event het gebeurt. Ik heb Lost_Focus, Leave, Deactivate enz. geprobeerd. Ik hoop dat iemand dit weet. Microsoft past dit ook veel toe in windows. Bijvoorbeeld bij Internet Explorer, als je dan naar Extra - Internet opties gaat en je wilt bijvoorbeeld een site in toetsen dan houdt het internet opties scherm de focus, dat is precies wat ik ook wil in mijn applicatie. _/-\o_

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 13-02 20:06

Gerco

Professional Newbie

Wat jij wilt heet een "Modal dialog". Ik denk dat je met die term veel verder gaat komen met zoeken.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

Topicstarter
Gerco schreef op maandag 24 juli 2006 @ 09:54:
Wat jij wilt heet een "Modal dialog". Ik denk dat je met die term veel verder gaat komen met zoeken.
oke, toppie dankje wel, ik ga aan de slag. Ik wist niet hoe het heette dus daarom vond ik ook zo weinig.

Verwijderd

Topicstarter
Ik heb het gevonden.
Als je een form vanuit een ander formulier aanroept met normaal gesproken form.show()
doe je nu form.showDialog()
dat is het enige, dan werkt ie. Dan kan je het 2e formulier niet eerder verlaten totdat je op kruisje klikt en je kan formulier 1 niet benaderen zolang formulier 2 geopend is, dat is precies wat ik zocht.
Thanks :*) :D

  • Mastermind
  • Registratie: Februari 2000
  • Laatst online: 17-01 10:57
Om het form zichtbaar te houden kun je dit zetten:

C#:
1
this.TopMost = true;


zet dit uit met:
C#:
1
this.TopMost = false;


Om de focus te houden op de form bij de leave van de form, moet je een Eventhandler aanmaken bij de leave.

De method die de eventhandler-delegate aanroept luidt:

C#:
1
2
3
4
private void Form1_Leave(object sender, EventArgs e)
{
if (this.TopMost) this.Focus();
}


Je moet maar ff op Google zoeken hoe je de code in Visual Basic omzet.

Verwijderd

Topicstarter
Bedankt voor de moeite Mastermind, maar ik heb in VB.net 2005 geprobeerd maar daar werkt het niet, en had zoiets al geprobeerd met topmosten focus. Maar de oplossing die ik al had gepost met form.ShowDialog is maar 1 regel en werkt prima.
Misschien kan dat in C# ook wel.

  • Mastermind
  • Registratie: Februari 2000
  • Laatst online: 17-01 10:57
De ShowDialog oplossing werkt alleen bij een childform van de ParentForm (aangezien de ParentForm de childform opent). Om de ParentForm zelf op de topmost level (dus dat deze boven alle Win32-forms blijft) te houden werkt de oplossing die ik aandroeg (heb het geprobeerd).

[ Voor 10% gewijzigd door Mastermind op 24-07-2006 12:39 ]


Verwijderd

Topicstarter
Mastermind schreef op maandag 24 juli 2006 @ 12:38:
De ShowDialog oplossing werkt alleen bij een childform van de ParentForm (aangezien de ParentForm de childform opent). Om de ParentForm zelf op de topmost level (dus dat deze boven alle Win32-forms blijft) te houden werkt de oplossing die ik aandroeg (heb het geprobeerd).
heb je het ook geprobeerd in vb.net 2005 ?
want ik krijg een foutmelding bij:
this.Focus = true ik heb dat in vb.net 2005 als me.focus = true gedaan maar dat werkt niet.
hoe heb je dat opgelost dan ?

Verwijderd

Topicstarter
Nu doet ie het wel, bedankt voor de tip MasterMind, dit had ik inderdaad ook nodig. _/-\o_
Ik zat er al dichtbij toen, ik had ook met topmost en focus geprobeerd maar niet beiden tegelijk.
Pagina: 1