Autor Beitrag
0odarkio0
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Do 23.06.11 16:30 
Hallo :)
Ich hab mir ein Programm geschrieben was beim Start Steuerelemente erzeugen soll je nach Anzahl der Schulfächer die ich von unserer Schulhomepage lade. Das sieht wie folgt aus:

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:
        private void Steuerelemente()
         {
             int x = 10;
             int y = 10;
             TextBox[] t1 = new TextBox[montag_faecher];
             Label[] l1 = new Label[montag_faecher];
             int j = 0;

             for (int i = 0; i < montag_faecher; i++)
             {
                 //fach label montag
                 l1[i] = new Label();
                 l1[i].Parent = this.tabPage1;
                 l1[i].Text = montag_fachname[j];
                 l1[i].Location = new Point(x, y);
                 l1[i].Size = new Size(8020);
                 //textbox montag hausaufgaben
                 t1[i] = new TextBox();
                 t1[i].Parent = this.tabPage1;
                 t1[i].Text = "OK" + i;
                 t1[i].Location = new Point(x+80, y);
                 t1[i].Size = new Size(400,20);
                 y += 21;
                 j += 3;
             }

             Button button_speichern = new Button();
             button_speichern.Parent = this.tabPage1;
             button_speichern.Location = new Point(50, t1[montag_faecher - 1].Location.Y + 25);
             button_speichern.Text = "Speichern";
             button_speichern.Size = new Size(100,40);

         }


das erstellen usw klappt auch... aber wenn ich die Steuerelemente dann Resizen lassen möchte kann ich nicht auf sie zu greifen...

ausblenden C#-Quelltext
1:
2:
3:
4:
private void Form1_Resize(object sender, EventArgs e)
         {

         }


wenn ich da t1[0] <- z.B rein schreibe sagt er das t1[0] im Kontext nicht vorhanden ist.
Wenn ich sie versuche Global zu erstellen sagt er mir das ich nicht auf die Variable montag_faecher verweisen kann.

Kann mir jemand sagen wie ich die Steuerelemente erstellen kann damit ich überall Zugriff drauf hab?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 23.06.11 16:34 
Hallo!

Du musst sie als Feld der Klasse deklarieren und dann in der Methode instanzieren:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
private Textbox[] t1;

/* ... */
private void Steuerelemente()
{
  t1 = new TextBox[montag_faecher];
  /* ... */
}


Wobei Du allerdings mal über die Benennung Deiner Variablen nachdenken solltest, die sollten bisschen mehr darüber aussagen, was drin steckt ;-)

Grüße,
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
0odarkio0 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Fr 24.06.11 10:51 
Das hat geklappt danke :)

Aber jetzt habe ich noch ein Problem.
Wenn ich zu dem Array Steuerelement ein EventHandler erzeugen möchte
ausblenden C#-Quelltext
1:
ofd_button[i].Click += new EventHandler(Form1_Click);					


also ich habe eine nicht feste Anzahl von Buttons... das kommt halt immer auf die Fächer an.
Wenn ich die Buttons mit Form1_click erstellen lasse... dann bekomme ich bei jedem Button das selbe Ereignis :(
Wie kann ich es so machen das jeder Button etwas anderes ausgeben kann?

Edit:Ich hab gerade gesehen das es die frage schon in einem anderen Beitrag gibt... tut mir leid wegen der Doppelpost.. aber dort versteh ich es nicht.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 24.06.11 11:13 
Am Einfachsten dürfte sein, wenn Du Dir beim Erstellen der Textboxen in jeder TExtbox merkst, welchen Index sie im Array hat:
ausblenden C#-Quelltext
1:
t1[i].Tag = i;					


Und dann brauchst Du nur noch ein Event für alle, weil Du im Event abfragen kannst, welche Textbox es war:
ausblenden C#-Quelltext
1:
2:
var t = (TextBox) sender;
var i = (int) sender.Tag;

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
0odarkio0 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Fr 24.06.11 13:56 
nochmal danke ... das klappt nun auch =D
aber ein letztes Problem hab ich noch...
ich möchte die Daten auf ein FTP server hoch laden aber ich bekomm immer diese fehlermeldung:
ausblenden C#-Quelltext
1:
Der Remoteserver hat einen Fehler zurückgegeben: (550) Datei nicht verfügbar (z.B. nicht gefunden oder kein Zugriff).					

oder diese:
ausblenden C#-Quelltext
1:
Der Remoteserver hat einen Fehler zurückgegeben: (530) Nicht angemeldet.					


Mein Code zum upload (fehlermeldung 1):
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
 WebClient hl = new WebClient();
              hl.Proxy = new WebProxy();
              NetworkCredential nc = new NetworkCredential("acc""pass");
              hl.Credentials = nc;
              hl.UploadFile("ftp://neweta@neweta.ne.funpic.de/Dateien" + t1_2[0].Text, "STOR", t1_2[0].Text);


Mein Code zum upload (fehlermeldung 2):
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
WebClient hl = new WebClient();
             hl.Proxy = new WebProxy();
             NetworkCredential nc = new NetworkCredential("acc""pass""ftp://neweta.ne.funpic.de");
             hl.Credentials = nc;
             hl.UploadFile("ftp://neweta@neweta.ne.funpic.de/Dateien" + t1_2[0].Text, "STOR", t1_2[0].Text);


Ich hab mal ein bisschen gegooglet und hab das ganze auch mal mit WebRequest versucht.. aber da bekomme ich die selben fehler.

also das pass und der Acc sind 100%ig richtig eingegeben weil ich die daten ja vom server laden kann... da klappt die anmeldung.
Weis da jemand wo der fehler liegt?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 24.06.11 14:25 
Neue Frage, neues Thema ;-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.