Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Flera formulär

Postades av 2004-11-29 12:06:00 - Mattias Johansson, i forum vb.net, Tråden har 8 Kommentarer och lästs av 576 personer

Hur gör jag i C++ för att koppla samman flera formulär? Från Formulär1 öppnar jag Formulär2, men sedan vill jag klicka på en knapp i Formulär2 som t ex tömmer en textruta i Formulär1.

Hur berättar jag alltså för Formulär2 vad Formulär1 är?

Det verkar vara något problem med inkluderingen av header-filerna, för när jag inkluderar Formulär2.h i Formulär1.h (eller i stdafx.h), så vet inte längre Formulär 2 vad Formulär1 är... och vice versa.


Svara

Sv: Flera formulär

Postades av 2004-11-30 01:11:34 - Jesper Holmberg [msft]

Utan att ha sett din lösning är det svårt att säga varför header-filerna skulle orsaka problemet.

Dock - en möjlig lösning är att låta kommunikationen mellan Formulär2 och Formulär1 ske genom en event. När du klickar på knappen i Formulär2, meddelas Formulär1 genom händelsen och Formulär1 tömmer då det som tömmas ska.

På så vis behöver Formulär2 inte veta nåt om Formulär1.


Svara

Sv:Flera formulär

Postades av 2004-11-30 08:21:49 - Mattias Johansson

Tack för ditt svar.

Men i detta fallet rör det sig om en rad kontroller som jag måste kunna komma åt från det andra formuläret.

Jag vet inte om jag krånglar till det mer än nödvändigt. Alltså, i en ny Windows Forms Application lägger jag till ett extra formulär (Form2). Hur gör jag sedan så att Form1 och Form2 kommer åt varandras publika kontroller? Var inkluderar jag Form2.h?


Svara

Sv: Flera formulär

Postades av 2004-11-30 08:55:25 - Mikael Wedham

Om du har publika kontroller, så är det inget problem. Du måste däremot ha en referensvariabel, det går inte att komma åt på något annat sätt.

Du måste alltså:

Deklarera en variabel (f2) av typen Formulär2

Instansiera f2 från Formulär1

Accessa kontrollerna med f2.Kontrollnamn.

Du kommer INTE åt dem med Formulär2.Kontrollnamn!

/micke


Svara

Sv:Flera formulär

Postades av 2004-11-30 11:02:30 - Mattias Johansson

Tack för svaret.

Så långt är jag med. Jag instansierar Form2 i Form1 såhär:

Form2 * form2 = new Form2;
form2->form1 = this;
form2->Show();

...och i Form2 lägger jag till instansen av Form1:

public: Form1 * form1;

Men här uppstår problemet. Jag kan nu inte få klassen Form2 att komma åt klassen Form1:s publika kontroller eftersom Form2 inte vet vad Form1 är. Om jag skriver:

#include "Form1.h"

längst upp i Form2.h, så vet istället inte längre Form1 vad Form2 är.

Jag antar att jag bara inkluderat någon header fel, eftersom ovanstående fungerar utan problem i C#.


Svara

Sv: Flera formulär

Postades av 2004-12-01 13:46:00 - Mattias Johansson

Ok, är det alltså omöjligt att instansiera Form1 i Form2 samtidigt som jag instansierar Form2 i Form1?


Svara

Sv:Flera formulär

Postades av 2004-12-02 09:00:00 - Mikael Wedham

I de andra (VB/C#) språken så gills inte cirkulärreferenser. Detta låter typiskt som en sådan...

Vad vill du göra, det kanske finns ett smidigare sätt??

/micke


Svara

Sv: Flera formulär

Postades av 2004-12-02 10:57:28 - Mattias Johansson

Det ska bli ett enkelt spel. Jag hade tänkt att man i form1 skriver karaktärens namn, och sedan ska kunna ha 3 olika val. Beroende på vilket man väljer, öppnas form2, form3 eller form4. I det nyöppnade formuläret skriver man in data för karaktären, och när man sparar dessa stängs formuläret ner och sammanställningen visas i form1.

Är det smidigare att för detta skapa en 'karaktärs-klass' som sparar allt?

Det konstiga är att ovanstående 'cirkulärreferens' faktiskt funkar i C#!


Svara

Sv:Flera formulär

Postades av 2004-12-02 11:37:10 - Mikael Wedham

Det lättaste är nog att deklarera båda/alla formulär i Main() och sedan skapa de som du vill ha i Main()
Då kan du sätta referenser till båda formulären. - eller en klass, som du skrev...

/micke


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 722
27 958
271 751
485
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies