J'utilise un panneau en C # Winforms et remplissez le panneau avec l'abscription de la zone d'image à l'aide de la boucle
Par exemple, le nom du panneau est panal p>
System.Windows.Forms.PictureBox' is a 'type' but is used like a 'variable'
7 Réponses :
Ne voulez-vous pas
panal.Controls? //^ this is an 'a'
Ils ... mais cela ne causent pas d'erreur, c'est simplement le nom du contrôle et l'orthographe agnostique.
Eh bien, je ne peux pas savoir que s'il ne dit pas quelle erreur il reçoit
Dans votre deuxième bloc, la période après P.getType == Imagesbox est fausse (aucune période requise ici) ... Pour cette affaire, GetType est une méthode / une fonction non une propriété, ce qui doit donc être p.getType () p>
Il semble y avoir des fautes de frappe dans cette section (et éventuellement une erreur réelle).
foreach (Control p in panal.Controls) if (p is PictureBox) p.Location = new Point(50, p.Location.Y);
+1. Pour que la réponse complète, je suppose que cela pourrait être une bonne idée de signaler les fautes de frappe et des erreurs dans l'extrait de code d'origine.
Pourrait également utiliser Controls.oftype
dans la ligne (p.location.x = 50;) est err i.e ne peut pas modifier la valeur de retour de 'system.windows.forms.control.location' car il n'est pas une variable
Ensuite, il peut y avoir des bugs dans votre boucle.
J'ai reçu l'erreur suivante dans la ligne p.location.x = 50; Erreur 1 ne peut pas modifier la valeur de retour de 'system.windows.forms.control.location' car il n'est pas une variable
Contrôle connu en forme de picture: if (p est Picturebox) {Picturebox PB = (Imagebox) P} Code>
Vous feriez mieux de créer une variable privée de la forme elle-même, de sorte que vous puissiez faire des choses avec elle sans avoir à marcher à chaque fois que les commandes du panneau. P>
Essayez ceci:
foreach (Control p in panal.Controls) { if (p is PictureBox) { p.Left = 50; } }
Merci Musigenesis. Je le résolve. Je suis toujours configuré le pourquoi (p.x = 50;) est faux et donner une erreur. Si nous utilisons le (p.location = nouveau point (50,10);) il est correct. Je pense que ce nouveau point est également égal aux valeurs X et Y. Quelqu'un peut-il expliquer cela?
Je ne peux pas l'expliquer, mais ce serait une bonne question Stackoverflow.
Je pense que Picturebox.Location.x est en lecture seule sur la propriété. Donc, nous ne pouvons pas changer ou l'écrire.
Ouais, mais vous avez posé une question à laquelle je n'ai jamais pensé: pourquoi les X et Y sont-ils en lecture seule (ou tout contrôle) en lecture seule? Il y a probablement une bonne raison, mais je ne l'ai jamais rencontrée.
Je pense que pourrait aussi être une solution. p> p>
Quelle est l'erreur? Aussi ce wpf ou winforms? Plus vous donnez de détail, plus vous obtiendrez la réponse que vous recherchez.
J'utilise les winforms et l'erreur est System.Windows.Forms.picturebox 'est un "type" mais est utilisé comme une "variable"
@Qulzam: Le code de C. Ross résoudra votre problème