Gå til innhold

lese av knapper på egne kontroller


Anbefalte innlegg

Heisan

Har lage en egen kontrol som inneholder en del felter og knapper etc.

 

Når jeg i programmet setter ut kontrollen gjør jeg dette programmatisk slik:

EditControl = new ctrlKundeForm
EditControl.Parent = me.PanelMain
EditContro.Dock = DockStyle.Fill
EditControl.Show()
me.PanelMainMenu.Enabled = False

Jeg er ute etter å låse hoved vinduet når denne kontrollen er aktivert og måtte gjøre det ved å disable knappene manuellt da jeg ikke kan bruke ShowDialog() på en kontrol og det fungerer helt greit.

Det som derimot er utfordringen er jo å slå på knappene igjen når bruker trykke rOK på kontrollen. Jeg ser for meg å kunne lese av alle eventene i denne kontrollen, men ser ikke hvordan jeg kan gjøre det. En måte er jo å ha en referanse til hovedmenyen på alle kontroller og bruke denne, men med tanke på vedlikehold er jo dette en dårlig løsning.

 

Forslag taes imot med stor takk ;-)

Lenke til kommentar
Videoannonse
Annonse
Er det noen annen måte å "tvinge" current Choise i en liste til å være CurrentRow , på en eller annen måte?

8519424[/snapback]

Kan du ikke bare bruke CurrentRow i sletteprosedyren da?

8519478[/snapback]

Er litt usikker på om du har missforstått fordi det er vel egentlig noe slikt jeg er ute etter. Slik jeg gjør det nå så er det kontrollen så "strekker" ut en hand og fikler i vinduet som eier kontrollen. Det betyr jo at kontrollen ikke kan leve sitt eget liv, men er avhengig av omverdnen. Jeg gjør dette ved å sette en referanse til eiervinduet inn i kontrollen. Det jeg egentlig vil ha til er jo å skrive kode på samme måte som jeg gjør for en hvilken som helst annen kontroll som sette på skjermen. Eksempelvis Button_Click metoden. Jeg vil ha mine metoder inn i eiervonduet på samme måte. Noe slik:

 

Public Class Main()
 Private SomeCOntrol as MyControl

 Private sub MainFrame_Load(ByVal..........) handles MyBase.Load
   Me.SomeControl = new MyControl
   Me.SomeControl.Show
 End Sub

 Private sub KnappNr3_click(ByVal sender as....) handles me.MyControl.KnappNr3_Click
   Kode som skal utføres når den aktuelle nkappen på UserControl er trykket
 End Sub
End Class

Som du ser så ønsker jeg å flytte hendeølse på knappen ut av selve kontrollen

 

Jeg har prøvd å legge den inn med Withevents og da kommer kontrollen opp i listen med alle eventene, men kunn generelle eventer, som Click etc. På meg virker det som om de generelle eventene som dukker opp da gjelder hele kontrollen i sin helhet og ikke de individuelle delene kontrollen er bygget opp med

Lenke til kommentar
Jeg har prøvd å legge den inn med Withevents og da kommer kontrollen opp i listen med alle eventene, men kunn generelle eventer, som Click etc.  På meg virker det som om de generelle eventene som dukker opp da gjelder hele kontrollen i sin helhet og ikke de individuelle delene kontrollen er bygget opp med

8519640[/snapback]

Nei, du må definere slike hendelser selv. Dette kan enklest gjøres i VB ved å bruke Event-kodeordet:

Event OkClick(DineParamentreHer As String)

I brukerkontrollen "invokerer" (kaller) du denne hendelsen ved RaiseEvent:

RaiseEvent OkClick("Hei")
Lenke til kommentar

Ahhh. Nå snakker vi :-D Jeg kan med andre ord også putte parametere på dette eventet :-D Interresant! Det er jeg ikke vant til fra Clarion. Der kunne jeg sende en parameter ved å bruke en annen form for event. Ulempen der var at parametere måtte være en LONG og at alle disse eventene ble tvunget først i event lista. Ble litt kronglete når Clarion hele tiden reorganiserte eventhandlingen. Det ble kallt NOTIFY i stedet for Event på denne måten.

 

Anyway - takker for svar...

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...