Avatar billede elmoe Juniormester
03. september 2009 - 21:04 Der er 6 kommentarer og
1 løsning

Få adgang til Form objekter som knapper osv, fra andre klasser

Jeg har det problem, at min hovedklasse med alle form-objekter er ved at blive vanvittig stor. Jeg vil derfor godt have noget af indholdet delt ud i en anden klasse. Hvordan får jeg adgang til at ændre knapper, tilføje tekster til tekstfelter og i det hele taget hente data og få adgang til Formens mange objekter fra en anden klasse?
Avatar billede sirius Nybegynder
04. september 2009 - 08:52 #1
Du skal sørge for ikke at have noget forretningslogik i din formklasse.

Ellers kan du dele områder af din brugergrænseflade ud i mindre controller. Hvis dine controller så har brug for at tilgå andre componenter på din form kan du lave properties til at tilgå disse. Du kan så få adgang til disse via Parent propertien på dine andre controller.
Avatar billede elmoe Juniormester
04. september 2009 - 11:53 #2
Har du et mere konkret eksempel?
Avatar billede windcape Praktikant
04. september 2009 - 16:02 #3
properties + observer pattern
Avatar billede elmoe Juniormester
04. september 2009 - 18:48 #4
Det siger desværre stadig ikke meget om hvordan jeg skal få fat i formens properties fra en anden klasse?
Avatar billede elmoe Juniormester
04. september 2009 - 18:50 #5
Altså hvordan jeg skal få fat i formens objekters egenskaber? Det er det jeg er i tvivl om?
Avatar billede elmoe Juniormester
07. september 2009 - 15:53 #6
lukker
Avatar billede sandrasmurf Nybegynder
07. september 2009 - 16:04 #7
Du har 3 forms. MainForm, ChildForm1 og ChildForm2. Fra ChildForm2 skal du kunne opdatere et felt på ChildForm1.

Så opretter du en Public Property i ChildForm1, der sætter eksempelvis et textfelt.

public partiel class ChildForm1
{
  public string StatusText { set { this.textField1.Text = value; }
  ...
}

I MainForm opretter du en Property, der kalder ChildForm1's property, som vi lige har lavet. Du skal selv sørge for at ChildForm1 er åben, for ellers bliver der naturligvis smidt en fejl.

public partiel class MainForm
{
  ChildForm1 child1 = new ChildForm1();
  ChildForm2 child2 = new ChildForm2();

  public string Child1StatusText { set { child1.StatusText = value; }
  ...
}

Og så kalder du tekst opdateringen fra ChildForm2

public partiel class ChildForm2
{
  public void SetTextInChild1Form(string text)
  {
      this.Parent.Child1StatusText  = text;
  }
  ...
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester