Autor Beitrag
→Tobi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: So 15.03.09 21:32 
Ich bin gerade dabei ein Programm zu baun, dass Graphen zeichnet. Das funktioniert auch. Bloß die wesentlich einfachere Aufgabe bekomme ich nicht hin: das Achsenkreuz zeichnen (bestehend aus zwei bloßen Linien)...

Der Graph wird per Klick auf einen Button gezeichnet. Die Linien des Achsenkreuzes sollen bereits beim Laden eingezeichnet werden. Allerdings werden sie nicht geladen wenn ich den Befehl in Form1_Load schreibe. Allerdings funktioniert es seltsamerweise wenn ich das Kreuz durch einen Klick auf einen Button zeichnen lasse...

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
using System;
using System.Drawing;
using System.Windows.Forms;

namespace Zeichner
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private int f(int x)
        {
            double ergebnis = Math.Pow(x, 2);
            return Convert.ToInt32(-0.01 * ergebnis + 158);
        }

        private void button1_Click(object sender, EventArgs e) // FUNKTIONIERT
        {
            Graphics grafik = panel1.CreateGraphics();
            Pen myPen = new Pen(Color.Red);

            for (int x = -134; x <= 134; x++)
            {
                Point p1 = new Point((x + 134), f(x));
                Point p2 = new Point((x + 135), f(x));

                grafik.DrawLine(myPen, p1, p2);
            }
        }

        private void button10_Click(object sender, EventArgs e) // FUNKTIONIERT
        {
            Graphics grafik = panel1.CreateGraphics();
            Pen myPen = new Pen(Color.Green);

            Point p1 = new Point(0158);
            Point p2 = new Point(268158);

            grafik.DrawLine(myPen, p1, p2);
        }

        private void Form1_Load(object sender, EventArgs e) // KLAPPT NICHT (wird nicht angezeigt)
        {
            Graphics grafik = panel1.CreateGraphics();
            Pen myPen = new Pen(Color.Green);

            Point p1 = new Point(0158);
            Point p2 = new Point(268158);

            grafik.DrawLine(myPen, p1, p2);
        }

        private void button2_Click(object sender, EventArgs e) // FUNKTIONIERT
        {
            Graphics grafik = panel1.CreateGraphics();
            Pen myPen = new Pen(Color.Green);

            Point p1 = new Point(0158);
            Point p2 = new Point(268158);

            grafik.DrawLine(myPen, p1, p2);
        }
    }
}
Console.Beep()
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 43

Win XP, Ubuntu 8.10
C# (VS 2008 Exp) C++ (VS 2008 Exp)
BeitragVerfasst: Mo 16.03.09 10:00 
Zeichnen tut das Program. Du solltest aber mit OnPaint zeichnen, denn bei deiner Methode verwirft das Program die letzte Zeichnung wenn das Form neugezeichnet wird.
Deswegen mein Tipp: Schau dir OnPaint an
www.mycsharp.de/wbb2...id=118371#post118371

_________________
Ihr zweifelt an der Existenz der If-Schleife??? Ihr müsst nur fest daran glauben!!!
&#8594;Tobi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Mo 16.03.09 21:00 
Aber trotzdem sollte man doch etwas zu sehen bekommen sobald das Programm geladen hat, da ja dann noch nichts überzeichnet wird.
Console.Beep()
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 43

Win XP, Ubuntu 8.10
C# (VS 2008 Exp) C++ (VS 2008 Exp)
BeitragVerfasst: Mo 16.03.09 21:14 
Du verwechselst da was. Erst wird das Form mit allen Komponenten geladen, davor wäre unsinnig da sowohl das Form als auch die Controls nicht vorhanden sind.

_________________
Ihr zweifelt an der Existenz der If-Schleife??? Ihr müsst nur fest daran glauben!!!