Autor Beitrag
Mojito
Hält's aus hier
Beiträge: 8

Win Vista, 7
C#, VB 6
BeitragVerfasst: So 07.03.10 22:37 
Hallo erst mal,
ich habe ein folgendes Problem bei dem ich einfach nicht weiter komme.(habe auch hier im forum nichts gefunden)

Aus einer Form rufe ich über ein Menü eine Neue Modale Form auf in der nur eine Picturebox ist in dieser soll nun ein Viereck gezeichnet werden. Also eingentlich ganz einfach. Doch das Problem ist, dass das Viereck nicht gezeichnet wird, die Methode wird bei Form_load aufgerufen es passiert aber nichts. Wenn ich aber die Methode zum zeichnen über ein Click event aufrufe taucht das Viereck auf.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
   //hier wird nun die neue Form aufgerufen
  private void infoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            info info = new info(stift,pinsel);
            info.ShowDialog();
            
        }


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
  //in der neun Form "info"
  private void Info_Load(object sender, EventArgs e)
        {
            zeichenflaeche = pictureBox2.CreateGraphics();
            zeichnen();
        }
  

        public void zeichnen()
        {
            Pen stiftRahmen;
            stiftRahmen = new Pen(Color.Black, 1);
            zeichenflaeche.DrawRectangle(stiftRahmen, 20,202020);
            zeichenflaeche.FillRectangle(pinsel, 21211919);
        }

        private void pictureBox2_Click(object sender, EventArgs e)
        {
            zeichnen();
        }


Nun verstehe ich nicht warum es bei dem einem Aufruf funktioniert es und beim anderen nicht wobei es eine und die Selbe Methode ist.... :?

Ich hoffe mir kann jemand helfen und vielen Dank schon mal in Forraus.

Jürgen
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 07.03.10 22:59 
Hallo!

Load dürfte zu früh sein, da wird dann nochmal drüber gepinselt.

Versuch's mal im Paint-Event der PictureBox. Im Paint-Event der Form ginge auch, aber die PictureBox erscheint mir logischer.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Mojito Threadstarter
Hält's aus hier
Beiträge: 8

Win Vista, 7
C#, VB 6
BeitragVerfasst: Mo 08.03.10 15:56 
Hallo Christian,
danke für den tip werde es gleich ausprobieren.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 08.03.10 20:01 
Aber verwende dann in der Paint-Methode "e.Graphics" anstatt "CreateGraphics"!

Das Zeichnen sollte generell nur im Paint-Event erfolgen, da sonst die Zeichnung wieder weg wäre (auch über den Button-Click), wenn das Fenster z.B. minimiert und wiederhergestellt bzw. von einem anderen Fenster zeitweise verdeckt wird (kannst es ja gerne mal ausprobieren).

P.S: Dies ist bisher die beste Verunstaltung von "voraus": Forraus
Ich kenne ein andere Forum, da wird "vorraus" immer zensiert (******)...
Mojito Threadstarter
Hält's aus hier
Beiträge: 8

Win Vista, 7
C#, VB 6
BeitragVerfasst: Mi 10.03.10 18:19 
Danke an euch beiden hat super funktioniert.

ps. Th69 man du hast Recht über diese Verunstaltung war ich selbst erschrocken :)

_________________
I love deadlines. I like the whooshing sound they make as they fly by. - Douglas Adams