Autor Beitrag
avoid
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 230
Erhaltene Danke: 4

MSDos, WinXP32, Win764, Win10, Android, Debian
msl (mIRC edit), html & php & Java (DreamweaverMX), Basic (picaxe PE6), C (Arduino IDE), C# (vs2010,2015,2017,2019,Unity,Android Studio)
BeitragVerfasst: So 27.01.13 21:14 
folgende situation:
- ich habe eine picturebox mit einer grafik als hintergrund.
- über dieser erstelle ich zur laufzeit weitere pictureboxen mit grafiken darin.
- die neuen pictureboxen haben "new_" ihrem namen vorrangestellt.

nun möchte ich zum einen diese neuen pictureboxen zählen und deren anzahl in einem label ausgeben.
- doch wie zählt man steuerelemente die erst zur laufzeit erstellt werden?

und als zweites möchte ich einen ausdruck der hintergrund picturebox
incl. der zur laufzeit erstellten pictureboxen die darüber liegen.
- hierfür muß ich wohl auch wieder die "new_" boxen abrufen.

wie ich die zusätzlichen pictureboxen erstelle kann hier nachgelesen werden.
www.entwickler-ecke.....php?p=672781#672781

das drucken der hintergrund picturebox schaffe ich schon mit folgendem code.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
private void button_druck_Click(object sender, EventArgs e)
{
    if (!(pictureBox_Hintergrund.BackgroundImage == null))
    {
        if (printDialog1.ShowDialog() == DialogResult.OK)
        {
            printDocument1.Print();
        } 
    }
}

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
    e.Graphics.DrawImage(pictureBox_Hintergrund.BackgroundImage, 00, pictureBox_Hintergrund.Width, pictureBox_Hintergrund.Height);
    // an diese stelle müßte ich wohl eine schleife haben, die jeine "new_" box nach der anderen hinzu fügt.
}


Moderiert von user profile iconTh69: Titel geändert.

_________________
Gute Fragen sind wie ein wissenschaftliches Experiment. Sie setzen eine Menge Wissen bereits voraus.
bitcoin:1J5dgQQp8eUy8wkUxyztBUVCkCpo5MQEQs?label=Danke
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 27.01.13 21:51 
In deinem verlinkten Codebeispiel siehst du auch das die neuen Pictureboxen einer Controls Collection eines Vatercontrols hinzugefügt werden. Du musst dir also nur den Inhalt dieser Controls Collection ansehen um deine erstellten Controls zu finden.

Die Anzahl bekommst du zum Beispiel per

ausblenden C#-Quelltext
1:
var CountOfMyLovelyPictureBoxes = MyLovelyParentControl.Controls.OfType<PictureBox>().Where(x => x.Name.StartsWith("new_")).Count();					

Für diesen Beitrag haben gedankt: avoid
avoid Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 230
Erhaltene Danke: 4

MSDos, WinXP32, Win764, Win10, Android, Debian
msl (mIRC edit), html & php & Java (DreamweaverMX), Basic (picaxe PE6), C (Arduino IDE), C# (vs2010,2015,2017,2019,Unity,Android Studio)
BeitragVerfasst: Mo 28.01.13 00:01 
danke Ralf,
der code funktioniert ich verstehe nur nicht warum ;)

ausblenden C#-Quelltext
1:
2:
var CountOfMyLovelyPictureBoxes = Controls.OfType<PictureBox>().Where(x => x.Name.StartsWith("new_")).Count();
label1.Text = CountOfMyLovelyPictureBoxes.ToString() + " new_";

_________________
Gute Fragen sind wie ein wissenschaftliches Experiment. Sie setzen eine Menge Wissen bereits voraus.
bitcoin:1J5dgQQp8eUy8wkUxyztBUVCkCpo5MQEQs?label=Danke
avoid Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 230
Erhaltene Danke: 4

MSDos, WinXP32, Win764, Win10, Android, Debian
msl (mIRC edit), html & php & Java (DreamweaverMX), Basic (picaxe PE6), C (Arduino IDE), C# (vs2010,2015,2017,2019,Unity,Android Studio)
BeitragVerfasst: Mo 28.01.13 01:15 
wenn ich bei "e.Graphics.DrawImage(.....);" eine for schleife drunter machen würde,
in der alle "Controls.OfType<PictureBox>" einzeln durchlaufen werden.
dann könnte ich nicht nur den namen prüfen sondern diese auch mit ihrer location
und size, dem graphics obiekt zuweisen d.h. sie würden mit aus gedruckt oder?

----- nachtrag -----
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
private PictureBox[] boxen;
// am ende vom links und rechtsklick ereigniss.
boxen = Controls.OfType<PictureBox>().Where(x => x.Name.StartsWith("new_")).ToArray();

// und dann noch das
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
    e.Graphics.DrawImage(pictureBox_Hintergrund.BackgroundImage, pictureBox_Hintergrund.Location.X, pictureBox_Hintergrund.Location.Y, pictureBox_Hintergrund.Width, pictureBox_Hintergrund.Height);
    for (int i = 0; i < boxen.Length; i++)
    {
        if (boxen[i].Name.Contains("new_"))
        {
            e.Graphics.DrawImage(boxen[i].BackgroundImage, boxen[i].Location.X, boxen[i].Location.Y, boxen[i].Width, boxen[i].Height);
        }
    }
}

so scheind es zu funktionieren.
kann ich hier die erneute frage ob im namen "new_" ist raus lassen? oder könnten ungültige werte dabei sein?
p.s. kommt mir etwas umständlich vor so wie ich das gemacht hab.

_________________
Gute Fragen sind wie ein wissenschaftliches Experiment. Sie setzen eine Menge Wissen bereits voraus.
bitcoin:1J5dgQQp8eUy8wkUxyztBUVCkCpo5MQEQs?label=Danke
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 28.01.13 12:16 
Zitat:
kann ich hier die erneute frage ob im namen "new_" ist raus lassen? oder könnten ungültige werte dabei sein?


Kannst du rauslassen.

Der Kommentar

Zitat:
// am ende vom links und rechtsklick ereigniss.


Läßt mich darauf schließen das du das immer aufrufst wenn du einen neu PictureBox hinzfügst? Dann würde ich den Linq ausdrück nicht verwenden. Sondern neben dem Controls.Add() auch einfach ein boxen.Add() aufrufen. Der Linq Ausdruck wäre sinnvoll gewesen wenn du an völlig anderer Stelle die Pictureboxen nochmal zusammensuchen must. Wenn du aber eh schon ein Klassenvariable dafür hast kannst du die auch gleich mit Add befüllen. Dann auch besser eine List<PictureBox> nehmen und kein Array.
avoid Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 230
Erhaltene Danke: 4

MSDos, WinXP32, Win764, Win10, Android, Debian
msl (mIRC edit), html & php & Java (DreamweaverMX), Basic (picaxe PE6), C (Arduino IDE), C# (vs2010,2015,2017,2019,Unity,Android Studio)
BeitragVerfasst: Mo 28.01.13 15:33 
ok.

die pictureboxen muß ich im grunde nur für zwei dinge zusammen suchen.
1. damit ich eine auflistung des auf den plan eingezeichneten matereal erhalte.
2. damit alles auf dem ausdruck ist.

das klappt ja jetzt soweit. :)

_________________
Gute Fragen sind wie ein wissenschaftliches Experiment. Sie setzen eine Menge Wissen bereits voraus.
bitcoin:1J5dgQQp8eUy8wkUxyztBUVCkCpo5MQEQs?label=Danke
avoid Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 230
Erhaltene Danke: 4

MSDos, WinXP32, Win764, Win10, Android, Debian
msl (mIRC edit), html & php & Java (DreamweaverMX), Basic (picaxe PE6), C (Arduino IDE), C# (vs2010,2015,2017,2019,Unity,Android Studio)
BeitragVerfasst: Do 27.08.15 18:49 
aus gegebenem Anlass hänge ich mal einen unfertigen Code an in dem zu sehen ist was ich damit so geplant hatte.
man kann aktuell leider nur entweder eine Grundrissgrafik im BMP Format einfügen oder Brandmeldeanlagensymbole im Rahmen Verteilen.
Beides geht hier nicht, da ist noch ein Fehler drin und die Grafik kann auch nicht Gezoomt werden aber immerhin kann man die Picture Boxen mit der Maus Verschieben.
Drucken müsste aber gehen.
Einloggen, um Attachments anzusehen!
_________________
Gute Fragen sind wie ein wissenschaftliches Experiment. Sie setzen eine Menge Wissen bereits voraus.
bitcoin:1J5dgQQp8eUy8wkUxyztBUVCkCpo5MQEQs?label=Danke