Entwickler-Ecke

Basistechnologien - Button.Location Problem


shinkan90 - Sa 28.08.10 08:49
Titel: Button.Location Problem
Hi Leute,

ich arbeite mich fleißig in C# rein. Nur stoße ich auf ein Problem:

Ich möchte gerne Soduko nachprogrammieren. Die Zahlen für das Feld will ich über einen Button-Kreis eingeben können, der um das Feld erscheint. Hier der Quelltext:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
public class Eingabekreis : Object
    {
        public Eingabekreis(int xPos, int yPos)
        {
            int Radius = 50;
            ArrayList EingabebuttonListe = new ArrayList();
            for (int i = 1; i < 10; ++i)
            {
                Button Eingabebutton = new Button();
                Eingabebutton.Text = i.ToString();
                int x,y;
                x = (int)(Math.Sin(2/9*Math.PI*i)*Radius+xPos); //Berechnung der Postion der Elemente Winkelfunktion
                y = (int)(Math.Cos(2/9*Math.PI*i)*Radius+yPos);

                Eingabebutton.Location.X = x; //Zuordnung der Postion
                Eingabebutton.Location.Y = y;

                EingabebuttonListe.Add(Eingabebutton);
            }
        }
    }


Das Problem ist nun das der Compiler mir folgendes sagt:
'Der Rückgabewert von "System.Windows.Forms.Control.Location" kann nicht geändert werden, da er keine Variablie ist'
Wo steckt da der Fehler oder gibt es vielleicht noch eine Alternative?

Eine Frage wäre da noch :)
Um selbstdefiniertes Objekt auf dem Formular anzuzeigen brauchte man in Delhpi "parent".
Wie stellt man das in C# an?

Vielen Danke
Liebe Grüße
Chris


Kha - Sa 28.08.10 11:10

:welcome:

user profile iconshinkan90 hat folgendes geschrieben Zum zitierten Posting springen:
'Der Rückgabewert von "System.Windows.Forms.Control.Location" kann nicht geändert werden, da er keine Variablie ist'
Wo steckt da der Fehler oder gibt es vielleicht noch eine Alternative?
Hätten sie sich an ihre eigenen Vorschriften gehalten und den Point-Struct immutable gemacht, würden solche verwirrenden Probleme gar nicht auftreten - aber das nur am Rande :) . So sollte es gehen:

C#-Quelltext
1:
Eingabebutton.Location = new Point(x, y);                    


user profile iconshinkan90 hat folgendes geschrieben Zum zitierten Posting springen:
Um selbstdefiniertes Objekt auf dem Formular anzuzeigen brauchte man in Delhpi "parent".
Wie stellt man das in C# an?
Füge das Control der Controls-Collection des Parents hinzu.


shinkan90 - Sa 28.08.10 11:52

okay, ich habe mir schon mal eine zeile quelltext dadurch gespart :)
aber leider kommt immer noch die gleiche fehler meldung :(


Kha - Sa 28.08.10 12:07

Uh, das kann aber in meiner Zeile nun wirklich nicht auftreten :nixweiss: .

PS - Noch ein paar Kleinigkeiten, die mir jetzt erst auffallen: Lokale Variablen klein schreiben, ArrayList durch List<Button> ersetzen.


shinkan90 - Sa 18.09.10 14:10

doch es klappt :)
der compiler hat irgendwie länger gebraucht um das zu raffen