[C#] new Point Y wert ändern

09/28/2014 19:39 Assault IX#1
Tag,
Ich möchte das in mein Programm der Nutzer "3" eingibt und es werden 3 Linien gezeichnet, mit jeweils 5, 10 Pixeln abstand.

Mein jetziger Code:

Code:
        
private void btnDraw_Click(object sender, EventArgs e)
        {
            Boolean[] bE = new Boolean[3]; // Die Anzahl wird später durch den Nutzer festgelegt.
            ShapeContainer canvas  = new ShapeContainer();
            LineShape      theLine = new LineShape();  
            
            canvas.Parent  = this;
            theLine.Parent = canvas;
            theLine.BorderColor = Color.Red;
            theLine.BorderWidth = 2;

            
            foreach (bool b in bE)
            {
                theLine.StartPoint = new System.Drawing.Point(110, 50);
                theLine.EndPoint   = new System.Drawing.Point(180, 50);
            }
        }
So, nun müsste ich vom Start- und Endpunkt jeweils den zweiten wert verändert (Y). Bisher ohne Erfolg.

Ich hatte halt schon versucht das ich eine Variable habe mit 50 als wert, und der sich zu der schleife jedes mal mit verändert, also Idle ist die variable 50, beim ersten durchlauf der schleife dann zB 55, 60, 65 (...) hat aber so nicht geklappt.

Hätte jemand von euch eine Idee?
09/28/2014 20:37 Mostey#2
Wieso benutzt du überhaupt ein bool Array dessen Größe einen einfachen Integer ersetzt? Du iterierst über das Array und machst ja nicht einmal irgendetwas mit den Werten.

Code:
for(int i = 0; i < lineCount; i+=5)
{
    theLine.StartPoint = new System.Drawing.Point(110, 50 + i);
    theLine.EndPoint   = new System.Drawing.Point(180, 50 + i);
}
wäre eine sinnvolle Anwendung von solch einer Schleife.
09/28/2014 21:08 Assault IX#3
Quote:
Originally Posted by Mostey View Post
Wieso benutzt du überhaupt ein bool Array dessen Größe einen einfachen Integer ersetzt? Du iterierst über das Array und machst ja nicht einmal irgendetwas mit den Werten.

Code:
for(int i = 0; i < lineCount; i+=5)
{
    theLine.StartPoint = new System.Drawing.Point(110, 50 + i);
    theLine.EndPoint   = new System.Drawing.Point(180, 50 + i);
}
wäre eine sinnvolle Anwendung von solch einer Schleife.
Zum Hintergrund wieso ein bool array: Das ganze soll hinterher ein AND-Gatter sein. Jede Linie symbolisiert einen Eingang. Wenn der Eingang geschaltet ist - ist der Array an der stelle halt true.


Ansonsten geht der obrige Code nicht. Es wird weiterhin nur eine Linie ausgegeben in der Form.
09/28/2014 22:47 Mostey#4
Quote:
Originally Posted by Assault IX View Post
Ansonsten geht der obrige Code nicht. Es wird weiterhin nur eine Linie ausgegeben in der Form.
Was auch nicht verwunderlich ist, da in der for Schleife auch nichts weiter passiert. Die Position wird halt immer wieder aktualisiert und überschrieben.

Ich wollte dir jetzt nichts zum kopieren geben, das musst du dir schon selbst erarbeiten.
09/28/2014 22:49 warfley#5
lass mich mal kurz repertieren was der code macht
Quote:
Erzeuge einen linecontainer, weise dem 1 linie zu
Für jeden boolwert im boolarray setzte die punkte dieser linie neu
und btw bei dir ist der code nich ma dynamisch, das heißt selbst wenn du 3 linien zeichnen würdest würde allen der gleiche punkt zugewiesen werden