Avatar billede freesoft Praktikant
20. marts 2007 - 08:45 Der er 16 kommentarer og
1 løsning

Udføre noget i en anden form

Hej

Jeg har et lille program med 2 forme, en søge form og en "main" (hvor den skal vise resultatet).

Når man så har søgt og valgt kunden, så vil jeg gerne have at søge formen lukker og viser resultatet i den anden form. Jeg er der næsten jeg har lavet i knap i main formen som udføre:
{
  udfyldTextFelterFraID(fundetID);
}

Det er sådan set bare dette den skal gøre når søge formen lukker.

fundetID bliver sat fra søge formen.

Hvis det har noget at sige så bruger jeg Visual Studio 2005 og det er C#.NET.

Mvh. Kim / FreeSoft
Avatar billede kalp Novice
20. marts 2007 - 09:24 #1
forstår ikke lige hvordan du er der næsten ved det du viser?

du kan enten få inspiration herfra
www.kalp.dk/ToForms.zip

og ellers skal du når du opretter form to lave at den modtager de forskellige ting den skal vise i dens construktør.
Avatar billede drgonzo Praktikant
20. marts 2007 - 09:56 #2
Du kan evt lave det som en MVC arkitektur, hvor dit view+controller er formen, så skal du bare have en model der opdaterer de relevante views med de relevante data, så ville jeg nok lave det med et IObserver interface med en void update() metode. Den ene forms update kan så opdatere de relevante tekst felter, mens update metoden i den anden form kan lukke formen..
Ved ikke om det er en relevant måde at lave det på, bare et hurtigt forslag
Avatar billede drgonzo Praktikant
20. marts 2007 - 09:57 #3
evt lav det hele i en MDI container
Avatar billede freesoft Praktikant
20. marts 2007 - 10:50 #4
gawi
Jeg har en knap i form1 som gør det som skal gøres når form2 lukker.
For at få vist resultatet af søgningen fra form2 i form1, jeg vil gerne undgå at skulle trykke på den knap.
Dit eks ligner noget af det rigtige kan bare ikke lige få det vendt rigtigt i hovedet :-)

Håber det hjalp lidt på forståelsen.
Avatar billede freesoft Praktikant
20. marts 2007 - 11:04 #5
Jeg åbner formen sådan her:
new Search().ShowDialog();

Er det ikke muligt, på en "smart" (som i ikke flere 100 linjer kode) måde at få udført en funktion når den lukkes?
Avatar billede kalp Novice
20. marts 2007 - 11:05 #6
Det er skam det helt rigtige..

Det du skal lave på form2 er når der søges så skrives der til form1.

Du skal som sagt bare gøre så form2 kender form1.

dvs. når form2 oprettes fra form1 skal du skrive

Form2 form = new Form2(this);

this sender en reference til form1.

I form2 skal konstruktøren så modtage et Form1 reference..

Form2(Form1 form)
Avatar billede freesoft Praktikant
20. marts 2007 - 11:26 #7
Jeg har allerede sådan at når der klikkes på et resultat, så bliver id'et gemt i form1, derfor jeg bare kan udføre dette udfyldTextFelterFraID(fundetID);

Nu har jeg så lige prøvet at gøre som du foreslår, men hvordan udføre jeg det så?
Avatar billede kalp Novice
20. marts 2007 - 11:54 #8
Det er meget indforstået det du skriver:)

Jeg ved ikke hvad din metode udfyldTextFelterFraID(fundetID); indeholder f.eks.

så kan ikke svare på dit spørgsmål.
Avatar billede freesoft Praktikant
20. marts 2007 - 11:57 #9
Er du ikke så sej du lige kan se det? :-)

Den henter data ud af et DB ud fra id'et og sætter det ind i tekst felter, sådan her:
usern = (string)rdr["user"];
textBoxUser.Text = usern;
Avatar billede kalp Novice
20. marts 2007 - 12:01 #10
Jeg gider ikke tænke så meget:)

Tror bare jeg laver et eksempel til dig om lidt.. det nemmere:P
Gør så der "fiktivt" laves en søgning i form2 og resultatet udskrives i form1.

nok nemmest:P for så kan du bare overføre ideen til dig eget.
Avatar billede freesoft Praktikant
20. marts 2007 - 13:03 #11
Det ville være dejligt hvis du gad det.
Nu synes jeg ellers jeg har lavet det som i det første fx, du kom med, men det må være noget jeg mangler.
Koden til "form1"  eller FrmPanda som jeg har kaldt den:
private Search form;
        public FrmPanda()
        {
            InitializeComponent();
        }

og koden i "form2" eller Search:
private FrmPanda form;
        public Search(FrmPanda form)
        {
            this.form = form;
            InitializeComponent();
        }

Er det rigtigt nok?
Avatar billede kalp Novice
20. marts 2007 - 13:57 #12
sådan..

http://www.kalp.dk/ToFormsVersion.zip

kør programmet.. tryk "Opret form2" den knap der er på form1.
i form 2 skriver du et søgeord.. og resultatet kommer så i form1!
Avatar billede kalp Novice
20. marts 2007 - 13:58 #13
jeg lægger et svar.
Avatar billede freesoft Praktikant
21. marts 2007 - 15:36 #14
kalp/gawi
Jeg vender lige tilbage på fredag, da jeg ikke lige har så meget tid lige nu til det :)
Avatar billede kalp Novice
21. marts 2007 - 15:49 #15
det i orden:)
Avatar billede freesoft Praktikant
23. marts 2007 - 11:06 #16
Nu virker det, havde så sat funktionen "udfyldTextFelterFraID" i mellem */ /* derfor VS ikke kom med det forslag første gang. Har lige testet det nu, og det virker helt perfekt som det skal.
Super mange tak, hvis du vil have flere point siger du bare til.
Avatar billede kalp Novice
23. marts 2007 - 12:51 #17
Selv tak:)
og 2oopoint er rigeligt:)
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