2017-06-06 2 views
2

Ich arbeite an einem Schulprojekt.C# - Erstellen von X- und Y-Achse mit anpassbaren Rechtecken

Das Ziel ist es, X-und Y-Achse mit Zahlen zu erstellen, dass Teil kann ich behandeln.

Problem ist, ich muss numerischeUpDowns erstellen, mit denen ich Rechtecke auf bestimmten X-und Y-Achse mit bestimmter Größe erstellen können. Die Größe und Position wird von den numerischenUpDowns gesteuert. Ich könnte Hilfe gebrauchen, da ich keinen Befehl kenne, der die beiden verbinden könnte.

Auch wenn es eine Möglichkeit gibt, dass sich die Zahlen auf der Achse wiederholen, ohne dass ich sie einzeln schreiben müsste, könnte ich das auch verwenden.

How it should look

 public void tvary(float x, float y, float polomer, Graphics gr) 
     { 

     gr.DrawEllipse(Pens.Black, x, y, polomer, polomer); 
     gr.DrawEllipse(Pens.Black, x - 15, y - 15, polomer * 2, polomer * 2); 
     gr.DrawEllipse(Pens.Black, x - 30, y - 30, polomer * 3, polomer * 3); 

     gr.DrawRectangle(Pens.Red, x-30, y-30, polomer * 3, polomer * 3); 
     } 

Gerade jetzt werden die X- und Y-Position der Rechtecke sind in den Code selbst geschrieben. Ich möchte die Rechtecke verschieben, indem ich die numerischenUpDows verwende, die auf Pic 3 gezeigt werden. Die Sache ist, dass ich nicht weiß, wie man das macht.

Leider kann ich im Moment nicht mehr als 1 Bild posten.

+0

einige könnten uns helfen, Fehler zu beheben –

+0

@ chris-crush-code – Chernarussian

+0

@ChristopherKyleHorton – Chernarussian

Antwort

1

NumericUpDown haben ValueChanged ActionEvent. Also jedes Mal, wenn Sie den Wert in NumericUpDown Methode für diese Aktion ändern wird ausgeführt werden. Sie müssen nur in der Methode für ActionEvent Ihre Methode zum Zeichnen eines Rechtecks ​​aufrufen. Sie müssen also Parameter für x und y senden. Zuerst müssen Sie es nehmen von NumericUpDown

private void numericUpDown1_ValueChanged(object sender, EventArgs e) 
{ 
    int x = Convert.ToInt16(numericUpDown1.Value); 
    int x = Convert.ToInt16(numericUpDown2.Value); 
    tvary(x, y, polomer, gr); 
} 

Code ist das gleiche für die zweite numericUpDown.

PS: Sie können Startwert für numericUpDown Steuerelement setzen.

+0

Können Sie beschreiben, wie es ein bisschen mehr funktioniert? Leider bekomme ich einige Fehler. Es besagt, dass es im tatsächlichen Kontext nicht existiert. Muss ich es separat deklarieren? – Chernarussian

+0

Doppelklicken Sie auf ein 'numericUpDown' und Sie erhalten eine Methode, mit der Sie Ihren Code schreiben können - private void numericUpDown1_ValueChanged (Objekt Absender, EventArgs e) {} – MiOnIs

+0

Ich weiß immer noch nicht, dass ich falsch mache. – Chernarussian

Verwandte Themen