Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Informatik in der Schule » C# Methoden Fehler GUI » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Zum Ende der Seite springen C# Methoden Fehler GUI
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
InformaTiger InformaTiger ist männlich
Tripel-As


images/avatars/avatar-77.gif

Dabei seit: 19.02.2013
Beiträge: 228
Herkunft: Südtirol

C# Methoden Fehler GUI Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo,
ich bin gerade am programmieren eines Hunderennens und habe dabei folgendes Problem:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
public bool Laufen()
{
// Random generieren
Random aZufallsgenerator = new Random();

aDistanz = aZufallsgenerator.Next(1,5);
Point aPostiton = aHundebild.Location;
aHundebild.Location.X += aDistanz;
aHundebild.Location = aPostiton;
}


In der 8 Zeile gibt mir der Kompiler folgende Fehlermeldung aus:

Zitat:
Der Rückgabewert "System.Windows.Forms.Control.Location" kann nicht geändert werden, da er keine Variable ist.


Ich habe dasselbe auch schon mit nur "X" versucht, hat allerdings auch nicht funktioniert. Laut meinem Buch wo das ich das ganze her hab müsste der Code eigentlich funktionieren.

Lg
InformaTiger

__________________
Why do Java developers wear glasses? Because they can't C#
23.02.2013 22:51 InformaTiger ist offline Beiträge von InformaTiger suchen Nehmen Sie InformaTiger in Ihre Freundesliste auf
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hi,

ich glaube Du machst da einen kleinen Fehler...

Du speicherst richtigerweise die Position in einer neuen Variable (aPosition). Es ist bestimmt ein flüchtigkeitsfehler, dass du danach X in aHundeBild.Location anzupassen versuchst. Du musst aPosition.X anpassen und dann die Location-Eigenschaft von aHundBild überschreiben.

Probiere
code:
1:
2:
3:
aPosition.X += aDistanz;


Klar warum?

VG,

Karlito
24.02.2013 00:52 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
InformaTiger InformaTiger ist männlich
Tripel-As


images/avatars/avatar-77.gif

Dabei seit: 19.02.2013
Beiträge: 228
Herkunft: Südtirol

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Das heißt, aPosition ist gar keine Variable (sondern ein Objekt?).

code:
1:
2:
3:
4:
aPosition.X += aDistanz;
aHundebild.Location = aPosition.X;


Würde das dann so stimmen?
Oder muss da an aHundebild.Location auch noch das X ran?

Lg
InformaTiger

__________________
Why do Java developers wear glasses? Because they can't C#
24.02.2013 20:21 InformaTiger ist offline Beiträge von InformaTiger suchen Nehmen Sie InformaTiger in Ihre Freundesliste auf
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo,

Location ist ein struct vom Typ Point. Structs sind Datenstrukturen. Wenn du in C# Eigenschaften hast, welche Structs zurückgeben, so erhältst du eine Kopie.

code:
1:
2:
3:
aHundebild.Location.X = irgendwas;


Würde also den X-Wert der Kopie anpassen. Daher der Fehler (könnte ich auch nicht aus der Meldung lesen)...

Dein Code ist aber falsch, da du Versuchst Location mit nur dem Wert X zu überschreiben. Benötigt wird aber der gesamte Punkt.

code:
1:
2:
3:
4:
aPosition.X += aDistanz;
aHundebild.Location = aPosition;


Du holst Dir also mit der Eigenschaft eine Kopie des Punktes Location, passt diese Kopie an und weist Sie wieder der Location zu. Das ist ein wenig unintuitiv. Spätestens wenn Du dich in C mit structs und dynamischer Programmierung auseinander setzt, könnte das Konzept etwas klarer werden.

Wenn es dich ganz brennend interessiert, würde ich mal versuchen dir zu erklären, wie das zusammenhängt.

VG,

Karlito
25.02.2013 02:32 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
InformaTiger InformaTiger ist männlich
Tripel-As


images/avatars/avatar-77.gif

Dabei seit: 19.02.2013
Beiträge: 228
Herkunft: Südtirol

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Danke, ich hatte leider in den letzten Tagen nicht viel Zeit mir das Problem nochmals anzuschauen. Ich werde mir das Programm so schnell wie möglich nochmals anschauen und wenn es Probleme gibt werde ich mich melden.

Zu den Strukturen: Ich wäre gern dazu bereit Sie zu erlernen. smile

Lg
InformaTiger

__________________
Why do Java developers wear glasses? Because they can't C#
26.02.2013 14:00 InformaTiger ist offline Beiträge von InformaTiger suchen Nehmen Sie InformaTiger in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Informatiker Board » Themengebiete » Informatik in der Schule » C# Methoden Fehler GUI