Autor Beitrag
Atticus
Hält's aus hier
Beiträge: 8



BeitragVerfasst: So 30.06.13 18:39 
Hallo Leute,

zuerst einmal das übliche Geplänkel. Ich habe schon gegooglet, etc. Aber komme nicht selbst auf die Lösung. Mache zwar schon schulisch bedingt etwas länger c#, bin da aber immer noch kein Überflieger.

Ich habe ein Programm, bei dem der Nutzer in der ersten Form gefragt wird wie viele Uhren(1-4) er haben möchte. Je nach Auswahl erscheinen dann 4 weitere Comboboxen mit den Werten der verschiedenen Zeitzonen (etwas vereinfacht). Das funktioniert so auch wie es soll.
Beim Klick auf den Button erscheint die nächste Form, die dann die Uhren anzeigt. Größe der Form wird auch richtig angepasst.
btw die Berechnung der Uhr stammt aus einer vorherigen Übung und funktioniert leider nicht ganz korrekt. Das ist hier aber nicht das Hauptproblem. WEnn da jemand nen Tipp hat auch gerne her damit.

Mein eigentliches Problem ist aber die Übergabe einer Variable, die der Digitaluhr im Label (es werden eine Analog- und eine "Digital"-Uhr angezeigt) die gewählte Zone übergibt.

Ich bekomme hier immer die Fehlermeldung "Eine nicht behandelte Ausnahme des Typs "System.StackOverflowException" ist in Aufgabe 1.exe aufgetreten." und das Programm stürzt dann ab. In der Variable steht auch nur eine 0. Da ist also auch noch ein Fehler.
Erfahrene Programmierer werden jetzt wohl die Hände über dem Kopf zusammenschlagen, da selbst ich weiß, dass der Code nicht gut/schön ist. Habe aber nur eine Woche für die Überarbeitung der alten Übung und keine Zeit nochmal komplett von vorne anzufangen.

Das Programm bleibt in Form1.cs bei set { this.UTC_1 = value; } stehen.

Hier mal mein Code. Bin für jeden gefundenen Fehler dankbar.

Auswahl.cs:
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:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Aufgabe_1
{
    public partial class Auswahl : Form
    {
        Timer timer = new Timer();
        
        public Auswahl()
        {
            InitializeComponent();
            InitializeTimer();
            this.timer.Start();

            lbl_Uhr_1.Visible = false;
            cb_Uhr_1.Visible = false;
            lbl_Uhr_2.Visible = false;
            cb_Uhr_2.Visible = false;
            lbl_Uhr_3.Visible = false;
            cb_Uhr_3.Visible = false;
            lbl_Uhr_4.Visible = false;
            cb_Uhr_4.Visible = false;

            //Anzahl der Uhren
            cb_Anzahl.Items.Add("1");
            cb_Anzahl.Items.Add("2");
            cb_Anzahl.Items.Add("3");
            cb_Anzahl.Items.Add("4");

            //Zeitzonen Uhr 1
            cb_Uhr_1.Items.Add("UTC-10 (Honolulu, Papeete)");
            cb_Uhr_1.Items.Add("UTC-9 (Anchorage)");
            cb_Uhr_1.Items.Add("UTC-8 (Vancover, Los Angeles)");
            cb_Uhr_1.Items.Add("UTC-7 (Calgary, Denver)");
            cb_Uhr_1.Items.Add("UTC-6 (Chicago, Mexiko)");
            cb_Uhr_1.Items.Add("UTC-5 (New York, Washington, Panama)");
            cb_Uhr_1.Items.Add("UTC-4 (Halifax, Santo Domingo)");
            cb_Uhr_1.Items.Add("UTC-3 (Rio de Janeiro, Buenos Aires)");
            cb_Uhr_1.Items.Add("UTC-2");
            cb_Uhr_1.Items.Add("UTC-1 (Ponta Delgada)");
            cb_Uhr_1.Items.Add("UTC (London,Lissabon)");
            cb_Uhr_1.Items.Add("UTC+1 (Berlin, Paris, Tunis)");
            cb_Uhr_1.Items.Add("UTC+2 (Helsinki, Jerusalem, Kapstadt)");
            cb_Uhr_1.Items.Add("UTC+3 (Moskau, Bagdhad)");
            cb_Uhr_1.Items.Add("UTC+4 (Baku, Dubai)");
            cb_Uhr_1.Items.Add("UTC+5 (Perm)");
            cb_Uhr_1.Items.Add("UTC+6 (Novosibirsk)");
            cb_Uhr_1.Items.Add("UTC+7 (Bangkok, Jakrata)");
            cb_Uhr_1.Items.Add("UTC+8 (Peking, Perth)");
            cb_Uhr_1.Items.Add("UTC+9 (Tokio)");
            cb_Uhr_1.Items.Add("UTC+10 (Sidney)");
            cb_Uhr_1.Items.Add("UTC+11");
            cb_Uhr_1.Items.Add("UTC+12 (Auckland)");

            //Zeitzonen Uhr 2
            cb_Uhr_2.Items.Add("UTC-10 (Honolulu, Papeete)");
            cb_Uhr_2.Items.Add("UTC-9 (Anchorage)");
            cb_Uhr_2.Items.Add("UTC-8 (Vancover, Los Angeles)");
            cb_Uhr_2.Items.Add("UTC-7 (Calgary, Denver)");
            cb_Uhr_2.Items.Add("UTC-6 (Chicago, Mexiko)");
            cb_Uhr_2.Items.Add("UTC-5 (New York, Washington, Panama)");
            cb_Uhr_2.Items.Add("UTC-4 (Halifax, Santo Domingo)");
            cb_Uhr_2.Items.Add("UTC-3 (Rio de Janeiro, Buenos Aires)");
            cb_Uhr_2.Items.Add("UTC-2");
            cb_Uhr_2.Items.Add("UTC-1 (Ponta Delgada)");
            cb_Uhr_2.Items.Add("UTC (London,Lissabon)");
            cb_Uhr_2.Items.Add("UTC+1 (Berlin, Paris, Tunis)");
            cb_Uhr_2.Items.Add("UTC+2 (Helsinki, Jerusalem, Kapstadt)");
            cb_Uhr_2.Items.Add("UTC+3 (Moskau, Bagdhad)");
            cb_Uhr_2.Items.Add("UTC+4 (Baku, Dubai)");
            cb_Uhr_2.Items.Add("UTC+5 (Perm)");
            cb_Uhr_2.Items.Add("UTC+6 (Novosibirsk)");
            cb_Uhr_2.Items.Add("UTC+7 (Bangkok, Jakrata)");
            cb_Uhr_2.Items.Add("UTC+8 (Peking, Perth)");
            cb_Uhr_2.Items.Add("UTC+9 (Tokio)");
            cb_Uhr_2.Items.Add("UTC+10 (Sidney)");
            cb_Uhr_2.Items.Add("UTC+11");
            cb_Uhr_2.Items.Add("UTC+12 (Auckland)");

            //Zeitzonen Uhr 3
            cb_Uhr_3.Items.Add("UTC-10 (Honolulu, Papeete)");
            cb_Uhr_3.Items.Add("UTC-9 (Anchorage)");
            cb_Uhr_3.Items.Add("UTC-8 (Vancover, Los Angeles)");
            cb_Uhr_3.Items.Add("UTC-7 (Calgary, Denver)");
            cb_Uhr_3.Items.Add("UTC-6 (Chicago, Mexiko)");
            cb_Uhr_3.Items.Add("UTC-5 (New York, Washington, Panama)");
            cb_Uhr_3.Items.Add("UTC-4 (Halifax, Santo Domingo)");
            cb_Uhr_3.Items.Add("UTC-3 (Rio de Janeiro, Buenos Aires)");
            cb_Uhr_3.Items.Add("UTC-2");
            cb_Uhr_3.Items.Add("UTC-1 (Ponta Delgada)");
            cb_Uhr_3.Items.Add("UTC (London,Lissabon)");
            cb_Uhr_3.Items.Add("UTC+1 (Berlin, Paris, Tunis)");
            cb_Uhr_3.Items.Add("UTC+2 (Helsinki, Jerusalem, Kapstadt)");
            cb_Uhr_3.Items.Add("UTC+3 (Moskau, Bagdhad)");
            cb_Uhr_3.Items.Add("UTC+4 (Baku, Dubai)");
            cb_Uhr_3.Items.Add("UTC+5 (Perm)");
            cb_Uhr_3.Items.Add("UTC+6 (Novosibirsk)");
            cb_Uhr_3.Items.Add("UTC+7 (Bangkok, Jakrata)");
            cb_Uhr_3.Items.Add("UTC+8 (Peking, Perth)");
            cb_Uhr_3.Items.Add("UTC+9 (Tokio)");
            cb_Uhr_3.Items.Add("UTC+10 (Sidney)");
            cb_Uhr_3.Items.Add("UTC+11");
            cb_Uhr_3.Items.Add("UTC+12 (Auckland)");

            //Zeitzonen Uhr 4
            cb_Uhr_4.Items.Add("UTC-10 (Honolulu, Papeete)");
            cb_Uhr_4.Items.Add("UTC-9 (Anchorage)");
            cb_Uhr_4.Items.Add("UTC-8 (Vancover, Los Angeles)");
            cb_Uhr_4.Items.Add("UTC-7 (Calgary, Denver)");
            cb_Uhr_4.Items.Add("UTC-6 (Chicago, Mexiko)");
            cb_Uhr_4.Items.Add("UTC-5 (New York, Washington, Panama)");
            cb_Uhr_4.Items.Add("UTC-4 (Halifax, Santo Domingo)");
            cb_Uhr_4.Items.Add("UTC-3 (Rio de Janeiro, Buenos Aires)");
            cb_Uhr_4.Items.Add("UTC-2");
            cb_Uhr_4.Items.Add("UTC-1 (Ponta Delgada)");
            cb_Uhr_4.Items.Add("UTC (London,Lissabon)");
            cb_Uhr_4.Items.Add("UTC+1 (Berlin, Paris, Tunis)");
            cb_Uhr_4.Items.Add("UTC+2 (Helsinki, Jerusalem, Kapstadt)");
            cb_Uhr_4.Items.Add("UTC+3 (Moskau, Bagdhad)");
            cb_Uhr_4.Items.Add("UTC+4 (Baku, Dubai)");
            cb_Uhr_4.Items.Add("UTC+5 (Perm)");
            cb_Uhr_4.Items.Add("UTC+6 (Novosibirsk)");
            cb_Uhr_4.Items.Add("UTC+7 (Bangkok, Jakrata)");
            cb_Uhr_4.Items.Add("UTC+8 (Peking, Perth)");
            cb_Uhr_4.Items.Add("UTC+9 (Tokio)");
            cb_Uhr_4.Items.Add("UTC+10 (Sidney)");
            cb_Uhr_4.Items.Add("UTC+11");
            cb_Uhr_4.Items.Add("UTC+12 (Auckland)");

            //int Index_1 = cb_Uhr_1.SelectedIndex;
            //int Index_2 = cb_Uhr_2.SelectedIndex;
            //int Index_3 = cb_Uhr_3.SelectedIndex;
            //int Index_4 = cb_Uhr_4.SelectedIndex;

            //int UTC_1 = Index_1 - 10;
            //int UTC_2 = Index_2 - 10;
            //int UTC_3 = Index_3 - 10;
            //int UTC_4 = Index_4 - 10;
        }

        public void InitializeTimer()
        {
            this.timer.Interval = 100;
            this.timer.Tick += new EventHandler(timer_tick);
        }

        private void timer_tick(object sender, EventArgs e)
        {
            this.Invalidate();
        }

        private void btn_Anzeigen_Click(object sender, EventArgs e)
        {
            if (cb_Anzahl.Text == "1")
            {
                Form1 Uhren = new Form1();
                Uhren.Size = new System.Drawing.Size(300400);
                Uhren.UTC_1 = cb_Uhr_1.SelectedIndex - 10;
                Uhren.Show();
            }
            else if (cb_Anzahl.Text == "2")
            {
                Form1 Uhren = new Form1();
                Uhren.Size = new System.Drawing.Size(600400);
                Uhren.UTC_1 = cb_Uhr_1.SelectedIndex - 10;
                Uhren.UTC_2 = cb_Uhr_2.SelectedIndex - 10;
                Uhren.Show();
            }
            else if (cb_Anzahl.Text == "3")
            {
                Form1 Uhren = new Form1();
                Uhren.Size = new System.Drawing.Size(900400);
                Uhren.UTC_1 = cb_Uhr_1.SelectedIndex - 10;
                Uhren.UTC_2 = cb_Uhr_2.SelectedIndex - 10;
                Uhren.UTC_3 = cb_Uhr_3.SelectedIndex - 10;
                Uhren.Show();
            }
            else if (cb_Anzahl.Text == "4")
            {
                Form1 Uhren = new Form1();
                Uhren.Size = new System.Drawing.Size(1200400);
                Uhren.UTC_1 = cb_Uhr_1.SelectedIndex - 10;
                Uhren.UTC_2 = cb_Uhr_2.SelectedIndex - 10;
                Uhren.UTC_3 = cb_Uhr_3.SelectedIndex - 10;
                Uhren.UTC_4 = cb_Uhr_4.SelectedIndex - 10;
                Uhren.Show();
            }
        }

        private void Auswahl_Paint(object sender, PaintEventArgs e)
        {
            if (cb_Anzahl.Text == "1")
            {
                lbl_Uhr_1.Visible = true;
                cb_Uhr_1.Visible = true;
                lbl_Uhr_2.Visible = false;
                cb_Uhr_2.Visible = false;
                lbl_Uhr_3.Visible = false;
                cb_Uhr_3.Visible = false;
                lbl_Uhr_4.Visible = false;
                cb_Uhr_4.Visible = false;
            }

            if (cb_Anzahl.Text == "2")
            {
                lbl_Uhr_1.Visible = true;
                cb_Uhr_1.Visible = true;
                lbl_Uhr_2.Visible = true;
                cb_Uhr_2.Visible = true;
                lbl_Uhr_3.Visible = false;
                cb_Uhr_3.Visible = false;
                lbl_Uhr_4.Visible = false;
                cb_Uhr_4.Visible = false;
            }

            if (cb_Anzahl.Text == "3")
            {
                lbl_Uhr_1.Visible = true;
                cb_Uhr_1.Visible = true;
                lbl_Uhr_2.Visible = true;
                cb_Uhr_2.Visible = true;
                lbl_Uhr_3.Visible = true;
                cb_Uhr_3.Visible = true;
                lbl_Uhr_4.Visible = false;
                cb_Uhr_4.Visible = false;
            }

            if (cb_Anzahl.Text == "4")
            {
                lbl_Uhr_1.Visible = true;
                cb_Uhr_1.Visible = true;
                lbl_Uhr_2.Visible = true;
                cb_Uhr_2.Visible = true;
                lbl_Uhr_3.Visible = true;
                cb_Uhr_3.Visible = true;
                lbl_Uhr_4.Visible = true;
                cb_Uhr_4.Visible = true;
            }
        }
    }
}


Form1.cs:
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:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Aufgabe_1
{
    public partial class Form1 : Form
    {
        Timer Timer_1 = new Timer();
        Timer Timer_2 = new Timer();
        Timer Timer_3 = new Timer();
        Timer Timer_4 = new Timer();

        //private int UTC_1;
        //private int UTC_2;
        //private int UTC_3;
        //private int UTC_4;

        public int UTC_1
        {
            get { return this.UTC_1; }
            set { this.UTC_1 = value; }
        }
        public int UTC_2
        {
            get { return this.UTC_2; }
            set { this.UTC_1 = value; }
        }
        public int UTC_3
        {
            get { return this.UTC_3; }
            set { this.UTC_1 = value; }
        }
        public int UTC_4
        {
            get { return this.UTC_4; }
            set { this.UTC_1 = value; }
        }
                
        public Form1()
        {
            InitializeComponent();
            InitializeTimer();
            this.Timer_1.Start();
            this.Timer_2.Start();
            this.Timer_3.Start();
            this.Timer_4.Start();
        }

        public void InitializeTimer()
        {
            this.Timer_1.Interval = 1000;
            this.Timer_1.Tick += new EventHandler(Timer_1_Tick);

            this.Timer_2.Interval = 1000;
            this.Timer_2.Tick += new EventHandler(Timer_2_Tick);

            this.Timer_3.Interval = 1000;
            this.Timer_3.Tick += new EventHandler(Timer_3_Tick);

            this.Timer_4.Interval = 1000;
            this.Timer_4.Tick += new EventHandler(Timer_4_Tick);
        }

        private void Timer_1_Tick(object sender, EventArgs e)
        {
            this.Zeit_Neu.Text = string.Format("{0:00}:{1:00}:{2:00}", (DateTime.Now.Hour) + UTC_1, DateTime.Now.Minute, DateTime.Now.Second);
                        
            this.Invalidate();
        }

        private void Timer_2_Tick(object sender, EventArgs e)
        {
            this.Zeit_Chi.Text = string.Format("{0:00}:{1:00}:{2:00}", (DateTime.Now.Hour) + UTC_2, DateTime.Now.Minute, DateTime.Now.Second);
            
            this.Invalidate();
        }

        private void Timer_3_Tick(object sender, EventArgs e)
        {
            this.Zeit_3.Text = string.Format("{0:00}:{1:00}:{2:00}", (DateTime.Now.Hour) + UTC_3, DateTime.Now.Minute, DateTime.Now.Second);

            this.Invalidate();
        }

        private void Timer_4_Tick(object sender, EventArgs e)
        {
            this.Zeit_4.Text = string.Format("{0:00}:{1:00}:{2:00}", (DateTime.Now.Hour) + UTC_4, DateTime.Now.Minute, DateTime.Now.Second);

            this.Invalidate();
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            float SekWinkel = DateTime.Now.Second * 6;
            float MinWinkel = DateTime.Now.Minute * 6;
            float StdWinkel1 = (DateTime.Now.Hour + ((DateTime.Now.Minute / 60)) * 30 /* Wert der angegebenen Zone*/);
            float StdWinkel2 = (DateTime.Now.Hour + ((DateTime.Now.Minute / 60)) * 30 /* Wert der angegebenen Zone*/);
            float StdWinkel3 = (DateTime.Now.Hour + ((DateTime.Now.Minute / 60)) * 30 /* Wert der angegebenen Zone*/);
            float StdWinkel4 = (DateTime.Now.Hour + ((DateTime.Now.Minute / 60)) * 30 /* Wert der angegebenen Zone*/);

            double SekRad = SekWinkel * Math.PI / 180;
            double MinRad = MinWinkel * Math.PI / 180;
            double StdRad1 = StdWinkel1 * Math.PI / 180;
            double StdRad2 = StdWinkel2 * Math.PI / 180;
            double StdRad3 = StdWinkel3 * Math.PI / 180;
            double StdRad4 = StdWinkel4 * Math.PI / 180;

            float xSek1 = 135 + (float)(0.9 * 100 * Math.Sin(SekRad));
            float xSek2 = 435 + (float)(0.9 * 100 * Math.Sin(SekRad));
            float xSek3 = 735 + (float)(0.9 * 100 * Math.Sin(SekRad));
            float xSek4 = 1035 + (float)(0.9 * 100 * Math.Sin(SekRad));
            float ySek = 185 - (float)(0.9 * 100 * Math.Cos(SekRad));
            float xMin1 = 135 + (float)(0.8 * 100 * Math.Sin(MinRad));
            float xMin2 = 435 + (float)(0.8 * 100 * Math.Sin(MinRad));
            float xMin3 = 735 + (float)(0.8 * 100 * Math.Sin(MinRad));
            float xMin4 = 1035 + (float)(0.8 * 100 * Math.Sin(MinRad));
            float yMin = 185 - (float)(0.8 * 100 * Math.Sin(MinRad));
            float xStd1 = 135 + (float)(0.5 * 100 * Math.Sin(StdRad1));
            float xStd2 = 435 + (float)(0.5 * 100 * Math.Sin(StdRad2));
            float xStd3 = 735 + (float)(0.5 * 100 * Math.Sin(StdRad3));
            float xStd4 = 1035 + (float)(0.5 * 100 * Math.Sin(StdRad4));
            float yStd1 = 185 - (float)(0.5 * 100 * Math.Sin(StdRad1));
            float yStd2 = 185 - (float)(0.5 * 100 * Math.Sin(StdRad2));
            float yStd3 = 185 - (float)(0.5 * 100 * Math.Sin(StdRad3));
            float yStd4 = 185 - (float)(0.5 * 100 * Math.Sin(StdRad4));

            //Kreis zeichnen
            Graphics Cl = CreateGraphics();
            Cl.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            Cl.DrawEllipse(Pens.Gray, 3585200200);
            Cl.DrawEllipse(Pens.Gray, 33585200200);
            Cl.DrawEllipse(Pens.Gray, 63585200200);
            Cl.DrawEllipse(Pens.Gray, 93585200200);

            //Uhr 1
            using (Pen pen = new Pen(Color.Black, 8))
            {
                e.Graphics.DrawLine(pen, 135185, xStd1, yStd1);
            }
            using (Pen pen = new Pen(Color.Black, 6))
            {
                e.Graphics.DrawLine(pen, 135185, xMin1, yMin);
            }
            using (Pen pen = new Pen(Color.Red, 4))
            {
                e.Graphics.DrawLine(pen, 135185, xSek1, ySek);
            }
            using (Brush brush = new SolidBrush(Color.Red))
            {
                e.Graphics.FillEllipse(brush, 135 - 6185 - 62 * 62 * 6);
            }
            using (Brush brush = new SolidBrush(Color.Black))
            {
                e.Graphics.FillEllipse(brush, 135 - 2185 - 22 * 22 * 2);
            }

            //Uhr 2
            using (Pen pen = new Pen(Color.Black, 8))
            {
                e.Graphics.DrawLine(pen, 435185, xStd2, yStd2);
            }
            using (Pen pen = new Pen(Color.Black, 6))
            {
                e.Graphics.DrawLine(pen, 435185, xMin2, yMin);
            }
            using (Pen pen = new Pen(Color.Red, 4))
            {
                e.Graphics.DrawLine(pen, 435185, xSek2, ySek);
            }
            using (Brush brush = new SolidBrush(Color.Red))
            {
                e.Graphics.FillEllipse(brush, 435 - 6185 - 62 * 62 * 6);
            }
            using (Brush brush = new SolidBrush(Color.Black))
            {
                e.Graphics.FillEllipse(brush, 435 - 2185 - 22 * 22 * 2);
            }

            //Uhr 3
            using (Pen pen = new Pen(Color.Black, 8))
            {
                e.Graphics.DrawLine(pen, 735185, xStd3, yStd1);
            }
            using (Pen pen = new Pen(Color.Black, 6))
            {
                e.Graphics.DrawLine(pen, 735185, xMin3, yMin);
            }
            using (Pen pen = new Pen(Color.Red, 4))
            {
                e.Graphics.DrawLine(pen, 735185, xSek3, ySek);
            }
            using (Brush brush = new SolidBrush(Color.Red))
            {
                e.Graphics.FillEllipse(brush, 735 - 6185 - 62 * 62 * 6);
            }
            using (Brush brush = new SolidBrush(Color.Black))
            {
                e.Graphics.FillEllipse(brush, 135 - 2185 - 22 * 22 * 2);
            }

            //Uhr 4
            using (Pen pen = new Pen(Color.Black, 8))
            {
                e.Graphics.DrawLine(pen, 1035185, xStd4, yStd1);
            }
            using (Pen pen = new Pen(Color.Black, 6))
            {
                e.Graphics.DrawLine(pen, 1035185, xMin4, yMin);
            }
            using (Pen pen = new Pen(Color.Red, 4))
            {
                e.Graphics.DrawLine(pen, 1035185, xSek4, ySek);
            }
            using (Brush brush = new SolidBrush(Color.Red))
            {
                e.Graphics.FillEllipse(brush, 1035 - 6185 - 62 * 62 * 6);
            }
            using (Brush brush = new SolidBrush(Color.Black))
            {
                e.Graphics.FillEllipse(brush, 1035 - 2185 - 22 * 22 * 2);
            }
        }
    }
}


Moderiert von user profile iconTh69: Beitragsformatierung überarbeitet.


Zuletzt bearbeitet von Atticus am So 30.06.13 19:05, insgesamt 1-mal bearbeitet
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: So 30.06.13 18:48 
Also erstmal wäre es schön, wenn du den Code nicht als Zitat sondern als Code einfügen würdest. (Der Knopf ist dirkt daneben und man kann seine Beiträge auch bearbeiten)

Der Fehler liegt hier:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
public int UTC_1 
 { 
 get { return this.UTC_1; } 
 set { this.UTC_1 = value; } 
 }

Der Setter ruft sich selbst wieder auf. Der getter im übrigen auch. ==> Endlose Rekursion. Das private Feld darüber ist auskommentiert und heißt auch noch genau so ... schlecht.
Entweder das private Feld deklarieren, ANDERS benennen und dann sowas:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
private int _utc_1; 
 public int UTC_1 
 { 
 get { return this._utc_1; } 
 set { this._utc_1 = value; } 
 }


Oder quick & clean fix:
ausblenden C#-Quelltext
1:
 public int UTC_1  {  get; set; }					

Falls ihr C# 3.0 oder höher benutzt. Den Rest macht der Compiler dann automatisch.

Für diesen Beitrag haben gedankt: Atticus
Atticus Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: So 30.06.13 19:20 
Vielen Dank. Das hat funktioniert und ich glaube ich hab sogar verstanden wieso. ;-)

Jetzt habe ich ein weiteres Problem.
Da die Berechnung der Uhren nicht stimmte habe ich den Code noch ein wenig angepasst.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
private void Timer_1_Tick(object sender, EventArgs e)
        {
            this.Zeit_Neu.Text = string.Format("{0:00}:{1:00}:{2:00}", (DateTime.Now.Hour) + (UTC_1 - 10), DateTime.Now.Minute, DateTime.Now.Second);
                        
            this.Invalidate();
        }


Das jeweils für die 4 Uhren bzw Timer.

Hier habe ich das - 10 entfernt, da dann Uhrzeiten wie 28:10 oder so rauskamen.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
if (cb_Anzahl.Text == "1")
            {
                Form1 Uhren = new Form1();
                Uhren.Size = new System.Drawing.Size(300400);
                Uhren.UTC_1 = cb_Uhr_1.SelectedIndex;
                Uhren.Show();
            }


Jetzt funktioniert das korrekt, wenn ich nur eine Uhr wähle, aber sobald es mehrere sind stimmt die erste nicht mehr und alle weiteren zeigen (die gleiche) falsche Zeit an. Wie kann das denn sein?
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4805
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 01.07.13 20:02 
Hallo Atticus,

du solltest dir dringend mal Listen (List<T>) bzw. Arrays (T[]) und Schleifen (forforeach, ...) anschauen. Dein ganzer Code ist mit Copy&Paste erstellt und dann passieren eben solche Fehler wie
ausblenden C#-Quelltext
1:
2:
(..., xStd4, yStd1)
// usw.

Und wenn du den Code dann gekürzt hast, dann gibt es noch ein paar andere Tipps von mir ;-)