Miért ír ezekre hibát? C#
pictureBox1.Location.X = 30;
pictureBox1.Location.Y = 52;
Ezekre ezt a hibát írja:
Cannot modify the return value of 'System.Windows.Forms.Control.Location' because it is not a variable
De miért? És akkor hogy változtassam meg az X-et és Y-t mikor fut a program?
hát.. ezt a parancsot nem ismerem.. szóval nem tudom, látnom kéne az egész programot amúgy itt olvasgass:
Ez két dolgot jelenthet. Az egyik: a location.x és y olyan property amihez nincs megadva setter csak getter. Így nem lehet módosítani.
Viszont ha megnézed az msdn-t:
Akkor láthatod hogy megvan adva setter is. A probléma az hogy a Point egy struktúra és ugye a struktúrák általában úgy vannak megírva, hogy létrehozásuk után nem módosíthatóak.(immutablilty) A megoldás, az hogy új struktúrát rendelsz a location tulajdonsághoz.:
pictureBox1.Location = new Point(30, 52);
Hogy miért van ez? A struktúra és az osztályok közötti különbség miatt. Az egyik érték tipusú a másik referencia. Ha ez részletesebben érdekel akkor olvasd ezt:
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!