Autor Beitrag
sharpx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 51



BeitragVerfasst: Do 08.01.09 12:34 
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
void Button1Click(object sender, EventArgs e)
    {
      StreamReader sr = new StreamReader("pc.jpg");
      Bitmap bild = new Bitmap(sr.BaseStream);
      sr.Close();
      
      pb.Image = bild;
      pb.SizeMode= PictureBoxSizeMode.AutoSize;
      
      
    }


Kann mir einer sagen wie ich jetzt z.b. das bild auf den koordinaten x=120 und y=200 positioniere?

Oder hat wer ein gutes Tutorial hier für?


Danke schon mals
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Do 08.01.09 12:42 
So langsam vergeht mir die Lust, Dir zu antworten.

Zitat:
Kann mir einer sagen wie ich jetzt z.b. das bild auf den koordinaten x=120 und y=200 positioniere?

Das klingt, als wenn Du die Bitmap innerhalb der PictureBox positionieren willst. Das geht so überhaupt nicht, wie aus der SDK-Doku/MSDN zu erkennen ist: Es gibt keine Eigenschaft der PictureBox, die eine solche Position verwendet; aber das von Dir verwendete SizeMode steuert genau das, und nur diese Möglichkeit hast Du.

Wenn Du aber die PictureBox im Formular positionieren willst, dann hat das nichts mit dem gezeigten Code zu tun. Schau in die Designer.cs, wie das geht.

Jürgen

PS. Der Titel "Bilder zeichnen" wäre etwas ganz anderes, siehe Paint-Ereignis. Du willst ein Bild anzeigen.

PS 2. Ich brauche zum Laden einer Datei nur eine Zeile, nicht drei:
ausblenden C#-Quelltext
1:
Bitmap bild = new Bitmap("pc.jpg");					

Auch dafür ist die SDK-Doku/MSDN hervorragend geeignet, nämlich um bessere Alternativen zu finden.
sharpx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 51



BeitragVerfasst: Do 08.01.09 12:57 
okay wie kann ich die picture box positionieren?
erklär mal, y0!

Moderiert von user profile iconChristian S.: Beiträge zusammenfasst

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
PictureBox pb = new PictureBox();
      pb.Height=100;
      pb.Width=100;
      pb.Top = 100;
      pb.Left = 100;
      pb.Image=Image.FromFile("pc.jpg");
      this.Controls.Add(pb);


passt das? y0!

Moderiert von user profile iconChristian S.: Beiträge zusammengefastt

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
void pb_click(object sender, EventArgs e)
    {
      MessageBox.Show("bam");
    }
    
    void Button1Click(object sender, EventArgs e)
    {
      PictureBox pb = new PictureBox();
      pb.Height=100;
      pb.Width=100;
      pb.Top = 100;
      pb.Left = 100;
      pb.Image=Image.FromFile("pc.jpg");
    
      this.Controls.Add(pb);
    }


Warum geht das nicht?
Sollte doch passen oder?

Moderiert von user profile iconChristian S.: Beiträge zusammengefasst

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
void pb_click(object sender, EventArgs e)
    {
      MessageBox.Show("bam");
    }
    
    void Button1Click(object sender, EventArgs e)
    {
      PictureBox pb = new PictureBox();
      pb.Height=100;
      pb.Width=100;
      pb.Top = 100;
      pb.Left = 100;
      pb.Image=Image.FromFile("pc.jpg");
      this.pb.Click += new System.EventHandler(this.pb_click);
      this.Controls.Add(pb);
    }


Habs auch mti nem eventhandler versucht.
geht auch nicht.

soltle das net passen?
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Do 08.01.09 13:35 
In allen diesen Varianten ist pb eine neue lokale Variable innerhalb der betreffenden Methode. Dazu habe ich schon hier geschrieben:
Zitat:
Seltsam kommt mir vor, dass Du in der xxx-Methode die yyy neu deklarierst und erzeugst und durch Übergabe als zzz willst, dass sie auch danach noch existiert. Das würde ich auf jeden Fall vermeiden; wenn die yyy im Formular insgesamt benötigt wird (nämlich als zzz), sollte sie auch dort deklariert und erstellt werden. Nur das Zuweisen ... würde in die xxx-Methode passen.

Wenn Du aber eine schon vorhandene PictureBox neu positionieren willst, dann musst Du doch nur Left/Top neu zuweisen und (damit es sofort sichtbar wird, wenn das noch nicht genügt) Refresh oder Invalidate aufrufen.

Was soll eigentlich PictureBox.Click? Das hat doch nichts mit der Positionierung der PictureBox zu tun, sondern sorgt dafür, dass das System künftig auf ein Klicken auf diese PictureBox reagiert. Du willst im Button-Click eine (vermutlich die vorhandene) PictureBox anders positionieren als bisher; dann beschränke Dich doch darauf.

Hast Du Dich inzwischen mit den Grundlagen von Ereignissen beschäftigt? Da habe ich noch Zweifel, siehe z.B. OpenBook Kap.13 ff..

Jürgen
sharpx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 51



BeitragVerfasst: Do 08.01.09 13:39 
Nein ich hatte REcht.
Der einzige Fehler war das
ausblenden C#-Quelltext
1:
this.pb.Click += new System.EventHandler(this.pb_click);					


welches ich durch
ausblenden C#-Quelltext
1:
      pb.Click += new System.EventHandler(pb_click);					


ersetzt habe.
Klickt man nun auf die Picture Box, kommt auch die MsgBox :=)
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Do 08.01.09 13:44 
user profile iconsharpx hat folgendes geschrieben Zum zitierten Posting springen:
Nein ich hatte REcht.

Wie schön für Dich. Und wodurch ist dieser Fehler entstanden? Durch unpassende Verwendung der Variablen pb. (Dieses Problem mit falschem this gab es vor wenigen Tagen schon einmal.) Jürgen
miniC#
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 75

Wiin XP Home
C# VS Express 2008
BeitragVerfasst: Do 08.01.09 15:21 
du lausbub ohne manieren ! *mitm finger wedel*

_________________
Zitat MDSN : " ... C# (gesprochen: "si scharp") " :D
sharpx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 51



BeitragVerfasst: Do 08.01.09 16:43 
user profile iconminiC# hat folgendes geschrieben Zum zitierten Posting springen:
du lausbub ohne manieren ! *mitm finger wedel*

lol? :D