HDSoftware Skrevet 2. mai 2007 Del Skrevet 2. mai 2007 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
aadnk Skrevet 2. mai 2007 Del Skrevet 2. mai 2007 Kunne du laget en ny hendelse som kjøres når rOK nedtrykkes? Da kan du styre videre behandling i hovedformen. Eller har jeg misforstått nå? Lenke til kommentar
HDSoftware Skrevet 2. mai 2007 Forfatter Del Skrevet 2. mai 2007 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
aadnk Skrevet 2. mai 2007 Del Skrevet 2. mai 2007 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
HDSoftware Skrevet 2. mai 2007 Forfatter Del Skrevet 2. mai 2007 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå