Seite 1 von 2 12 LetzteLetzte
Like Tree1Danke
ERLEDIGT
JA
ANTWORTEN
21
ZUGRIFFE
3502
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
  1. #1
    Eroli ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    238
    Hallo,

    ich hoffe mal, dass mir hier schneller geholfen werden kann, als in meinem "Stammforum"

    Die benutzte Programmiersprache ist C# mit .NET 2.0

    Also ich habe eine Klasse erstellt und diese Klasse wird so aufgerufen
    Code :
    1
    
    Klassenname Test1 = new Klassenname("Test", 50, 50, 25, new Point(20, 20), new Size(60, 20), "");

    Der Konstruktor der Klasse sieht so aus:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    public Klassenname(string Name, int Health, int Armor, int Speed, Point Position, Size Size, string Image)
            {
                m_Health = Health;
                m_Armor = Armor;
                m_Speed = Speed;
                
                Button btn = new Button();
                btn.Name = String.Format("DynButton{0}", m_Count);
                btn.Text = Name;
                btn.Size = Size;
                btn.Location = Position;
                MapBox.Controls.Add(btn);
            }

    Die Klasse an sich erbt alles von der Form, von der Sie aufgerufen wird:
    Code :
    1
    
    class Klassenname : Formname

    Nun sollte der Button, der im Konstruktor erstellt wird, der PictureBox zugewiesen werden, aber es passiert nix. wieso?
    Falls ihr weitere Angaben braucht, nur zu.

    MfG,
    Eroli
    Geändert von Eroli (29.03.07 um 16:22 Uhr)
     

  2. #2
    Avatar von Christian Kusmanow
    Christian Kusmanow ist offline Mitglied Diamant
    Registriert seit
    Aug 2004
    Ort
    Aachen (NRW)
    Beiträge
    2.176
    Hi!

    Willkommen im Forum!

    Controls können immer nur ein Parent haben. Von daher würde der Button auch von deinem MapBox-Objekt verschwinden und nur auf dem ServerOptionsPanel-Objekt angezeigt werden. Wenn Du ihn auf beiden haben willst, musst leider 2 Buttons erstellen. Kannst aber deren Control.Click-Ereigniss mit ein und der selben Methode verknüpfen...

    Btw: In dem [C#] Beim drücken eines Buttons Fensterinhalt ändern - Thread könntest Dir evtl noch ein paar Anregungen holen.
     
    MfG,
    Christian

    Wer sein Problem definiert, hat es schon halb gelöst!

    Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.

    The Code Project! - C# Programming | C# / VB.NET Pendants

    Regeln + Netiquette

    Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
    und vor allem nicht auf das, was euch die IHK dazu erzählt!
    Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...

  3. #3
    Eroli ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    238
    Ok, das bringt aber leider nix, denn auch wenn ich die zweite Zeile auskommentiere, so ist der Button nicht auf dem MapBox-Objekt vorhanden.
    Sonst noch ideen?

    Den Link gucke ich mir jetzt an.
    EDIT: Link angeguckt - hat mich aber weder angeregt noch hat er mir geholfen Sorry aber is so....


    Also, sonst noch Ideen wieso der Button nicht erscheint?
    Geändert von Eroli (29.03.07 um 15:34 Uhr)
     

  4. #4
    Avatar von Christian Kusmanow
    Christian Kusmanow ist offline Mitglied Diamant
    Registriert seit
    Aug 2004
    Ort
    Aachen (NRW)
    Beiträge
    2.176
    Was ist dein MapBox-Objekt im Detail? Also was für ein Typ von Control?

    Der Link beschreibt lediglich, wie man auf einfache Weise auf UserControls oder Forms zugreifen kann, sofern diese im Programm nur einmal vorhanden sind...

    Ach hier, ganz vergessen: Runtime Object Editor - The Code Project
    Damit kannst dir deine Controls zu Laufzeit anschauen.
    Geändert von Christian Kusmanow (29.03.07 um 15:38 Uhr)
     
    MfG,
    Christian

    Wer sein Problem definiert, hat es schon halb gelöst!

    Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.

    The Code Project! - C# Programming | C# / VB.NET Pendants

    Regeln + Netiquette

    Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
    und vor allem nicht auf das, was euch die IHK dazu erzählt!
    Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...

  5. #5
    Eroli ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    238
    Es ist eine PictureBox. Also eine PictureBox in der man ein Bild sehen kann.
    Meinst du das?
     

  6. #6
    Avatar von Christian Kusmanow
    Christian Kusmanow ist offline Mitglied Diamant
    Registriert seit
    Aug 2004
    Ort
    Aachen (NRW)
    Beiträge
    2.176
    Soweit ich weiß, unterstützt die PictureBox keine extra Controls. Da müsstest schon ein Panel hernehmen...

    Ich arbeite leider noch nicht mit .NET 2.0. von daher kenne ich alle neue Steuerelemente noch nicht so gut. Schau sie Dir alle genau an und ließ dich in die Topics auf der MSDN ein. Somit bekommst erst mal einen Überblick. Es gibt zudem wirklich viele CodeClips und Casts zu den neuen Controls. Vielleicht findest ein Neueres bzw. Passenderes.
     
    MfG,
    Christian

    Wer sein Problem definiert, hat es schon halb gelöst!

    Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.

    The Code Project! - C# Programming | C# / VB.NET Pendants

    Regeln + Netiquette

    Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
    und vor allem nicht auf das, was euch die IHK dazu erzählt!
    Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...

  7. #7
    Eroli ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    238
    Also ich glaube schon, dass die unterstützt werden, denn wenn ich den Code, der jetzt im Konstruktor der Klasse steht in die Ereignissmethode des Buttons schreibe, dann erscheint der Button.

    Nur so, mit dem Umweg über den Konstruktor, eben nicht.
     

  8. #8
    Avatar von Christian Kusmanow
    Christian Kusmanow ist offline Mitglied Diamant
    Registriert seit
    Aug 2004
    Ort
    Aachen (NRW)
    Beiträge
    2.176
    Sorry, aber das hab ich jetzt nicht verstanden. Könntest Du das mal bitte besser formulieren? Welche Ereignisbehandlung von welchem Button?

    Wie währe es wenn Du mal ein simples Beispielprojekt machst. Und mir zeigst, was wie nicht geht. Ich schaue es mir heut Abend @home mal an. Da hab ich ein VS2005 Pro.
     
    MfG,
    Christian

    Wer sein Problem definiert, hat es schon halb gelöst!

    Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.

    The Code Project! - C# Programming | C# / VB.NET Pendants

    Regeln + Netiquette

    Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
    und vor allem nicht auf das, was euch die IHK dazu erzählt!
    Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...

  9. #9
    Eroli ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    238
    Beispielprojekt halte ich für etwas übertrieben, kann ich dir aber gleich gerne machen.

    Also, so wie es dort http://www.tutorials.de/forum/1394981-post1.html beschrieben steht klappt es nicht.

    Schreibe ich den Code aus dem Konstruktor der Klasse, nun aber DIREKT in das OnClick Ereigniss irgendeines Buttons schreibe, dann erzeugt dieser BUtton mir die gewünschten Buttons:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
            private void button1_Click(object sender, EventArgs e)
            {
                //Creep Creep1 = new Creep("Test", 50, 50, 25, new Point(20, 20), new Size(60, 20), "");
                Button btn = new Button();
                btn.Name = String.Format("DynButton{0}", 2);
                btn.Text = btn.Name;
                btn.Size = new Size(60,20);
                btn.Location = new Point(20,20);
                MapBox.Controls.Add(btn);
            }
    Der obige Code-Ausschnitt klappt also. Aber warum? Oder warum klappt der verlinkte Codeausschnitt nicht?
     

  10. #10
    Avatar von Christian Kusmanow
    Christian Kusmanow ist offline Mitglied Diamant
    Registriert seit
    Aug 2004
    Ort
    Aachen (NRW)
    Beiträge
    2.176
    Ähm, ich hatte doch gesagt, dass bei
    Code csharp:
    1
    2
    
    MapBox.Controls.Add(btn);
    ServerOptionsPanel.Controls.Add(btn);
    der Button von deiner PictureBox (MapBox) verschwindet und dann auf dem ServerOptionsPanel-Objekt angezeigt wird. Das wird es wohl sein, weil Controls nur ein Parent haben können. Ansonsten muss ich leider passen.
     
    MfG,
    Christian

    Wer sein Problem definiert, hat es schon halb gelöst!

    Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.

    The Code Project! - C# Programming | C# / VB.NET Pendants

    Regeln + Netiquette

    Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
    und vor allem nicht auf das, was euch die IHK dazu erzählt!
    Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...

  11. #11
    Eroli ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    238
    Hab den Codeausschnitt jetzt aktualisiert. Es klappt leider immer noch nicht...
     

  12. #12
    Avatar von Christian Kusmanow
    Christian Kusmanow ist offline Mitglied Diamant
    Registriert seit
    Aug 2004
    Ort
    Aachen (NRW)
    Beiträge
    2.176
    Von daher hab ich auch vorgeschlagen mal eine simple kleine Demo zu machen, wo Du das verhalten besser nachvollziehen kannst. Entweder Du machst mal selber eine, was für dich wohl eher besser währe, allein der Übung wegen. Ich wüsste nicht was das schaden könnte. Und/Oder ich mach mich heut Abend mal dran, das auch mit .NET 2.0 auszuprobieren.
     
    MfG,
    Christian

    Wer sein Problem definiert, hat es schon halb gelöst!

    Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.

    The Code Project! - C# Programming | C# / VB.NET Pendants

    Regeln + Netiquette

    Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
    und vor allem nicht auf das, was euch die IHK dazu erzählt!
    Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...

  13. #13
    Eroli ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    238
    So, ich bin jetzt doch endlich mal auf die gloreiche Idee gekommen das ganze mal zu debuggen.

    Dabei ist mir aufgefallen, dass durch den Aufruf der Klasse mit "new" eine neue Klasse erzeugt wurde - logisch. Da diese Klasse von Form 1 abgeleitet ist, wurde damit gleichzeitig eine neue Form erzeugt - will ich nicht.
    Diese Form hab ich dann anzeigen lassen und siehe da - der Button ist da. Nur wie kann ich das jetzt so hinbekommen, dass das alles auf einer Form geht?

    Wenn ich das mit dem Vererben weglasse, dann kennt er die PictureBox wieder nicht....

    Code :
    1
    2
    3
    4
    5
    6
    
    //Aufruf der Klasse aus Form 1 heraus:
            private void button2_Click(object sender, EventArgs e)
            {
                CreateButtonClass test = new CreateButtonClass();
                test.Show();
            }
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    //Klasse:
        class CreateButtonClass : [COLOR="Red"]Form1[/COLOR]
        {
            public CreateButtonClass()
            {
                Button btn = new Button();
                btn.Name = "TestButton";
                btn.Text = "TestButton";
                btn.Size = new Size(80, 40);
                btn.Location = new Point(5, 5);
                [COLOR="Blue"]pictureBox.Controls.Add(btn);[/COLOR]
                
            }
        }

    Um die Vererbung auszuschließen, lösche ich also das rot markierte. Dann meckert er aber beim compilieren beim blau markiertem:
    "PictureBox ist im aktuellen Context nicht vorhanden" --> logisch irgendwo.

    Wie mache ich das nun richtig?
     

  14. #14
    Eroli ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    238
    So, ich hägen dann mal hiermit das Demo-Projekt an.

    Ein Freund hat mir davon abgeraten. Er kennt sich sehr gut mit Programmierung aus und meinte, dass unter anderem die GDI viel zu langsam für soetwas wäre...
    Angehängte Dateien Angehängte Dateien
     

  15. #15
    Avatar von Christian Kusmanow
    Christian Kusmanow ist offline Mitglied Diamant
    Registriert seit
    Aug 2004
    Ort
    Aachen (NRW)
    Beiträge
    2.176
    Danke für die Demo, so kann ich mir ein besseres Bild machen. Ich werde mir das mal anschauen. Aber am WE erst, für heute hab ich größeres Pensum vor mir.
    Was dein Freund gemeint hatte, hat absolut gar nichts mit dem aktuellen Fall zu tuen. Wenn GDI+ angeblich bei C# zu langsam währe, dann frage ich mich, warum es sogar UML- und Photo-Editoren in C# gibt, die lediglich auf GDI+ basieren.
     
    MfG,
    Christian

    Wer sein Problem definiert, hat es schon halb gelöst!

    Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.

    The Code Project! - C# Programming | C# / VB.NET Pendants

    Regeln + Netiquette

    Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
    und vor allem nicht auf das, was euch die IHK dazu erzählt!
    Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Aus eigene Klasse auf Form zugreifen
    Von String im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 13.02.10, 13:30
  2. Aus einer Klasse auf die Form zugreifen...
    Von thespecialx im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 21.02.08, 10:42
  3. Auf Elemente einer andren Form zugreifen ?
    Von GartenUmgraben im Forum .NET Windows Forms
    Antworten: 1
    Letzter Beitrag: 06.06.06, 19:42
  4. Auf Variable einer Klasse zugreifen
    Von Metha im Forum PHP
    Antworten: 7
    Letzter Beitrag: 14.05.06, 15:54
  5. Antworten: 3
    Letzter Beitrag: 09.04.03, 14:47