[FAQ] Déplacé un controle (<=> Déplacé le Forms)
	
	
		===============
MAUVAISE SECTION
   REPONDRE ICI
===============
lu
Pour un winforms SANS barre de titre, (sous VS 2005 express )
j'ai creer un bouton, et je souhaite adapté ce code (trouvé dans la FAQ):
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 
 |  
//Position de la souris lorsque le bouton a été enfoncé
Point ^positionClick;
//
// Notifie si le bouton de la souris a été enfoncé sur le PictuBox
//
private: System::Void pictureBox1_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
	// Vérification si bouton gauche de la souris est bien enfoncé
	if (e->Button == System::Windows::Forms::MouseButtons::Left)
			positionClick = e->Location;
	}
// Notifie si le curseur se déplace au dessus du PictureBox
private: System::Void pictureBox1_MouseMove(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
	// Vérification si bouton gauche de la souris est bien enfoncé
	if (e->Button == System::Windows::Forms::MouseButtons::Left) {
			// Calcul de la nouvelle position du PictureBox
			pictureBox1->Location = Point(pictureBox1->Location.X + e->X - positionClick->X, 
						      pictureBox1->Location.Y + e->Y - positionClick->Y);
	}
} | 
 ...aux évenement mouseDown et mouseMove d'un bouton 'buttonMove',
MAIS au lieu de déplacé le controle, je veux déplacé le Forms
j'ai donc le code suivant:
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 
 |  
//j'ajoute les declarations de form1 et buttonMove
public ref class Form1 : public System::Windows::Forms::Form
private: System::Windows::Forms::Button^  buttonMove;
...
// Position de la souris lorsque le bouton a été enfoncé 
Point ^positionClick;
 // Notifie si le bouton de la souris a été enfoncé sur le button
private: System::Void buttonMove_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
	// Vérification si bouton gauche de la souris est bien enfoncé
	 if (e->Button == System::Windows::Forms::MouseButtons::Left) {
		positionClick = e->Location;
	 	}
	 }
	 //
	 // Notifie si le curseur se déplace au dessus du button
private: System::Void buttonMove_MouseMove(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
	// Vérification si bouton gauche de la souris est bien enfoncé
	if (e->Button == System::Windows::Forms::MouseButtons::Left) {
		// Calcul de la nouvelle position du Forms
		Form1->Location = Point(Form1->Location.X + e->X - positionClick->X,
					Form1->Location.Y + e->Y - positionClick->Y);
		}
	 } | 
 la derniere formule (ligne 187 - 'Form1->Loc...') pose un probleme:
	Citation:
	
		
		
			Form1.h(187) : error C2143: erreur de syntaxe*: absence de ';' avant '->'
XP-AL - 2 erreur(s), 0 avertissement(s)
======== Régénération globale*: 0 a réussi, 1 a échoué, 0 a été ignoré ========
			
		
	
 pas d'erreur si je remplace Form1 par buttonMouse (mais evidement ca deplace le bouton et non le forms)
	Code:
	
| 12
 3
 
 |  
buttonMove->Location = Point(buttonMove->Location.X + e->X - positionClick->X,
			     buttonMove->Location.Y + e->Y - positionClick->Y); | 
 
	Citation:
	
		
		
			XP-AO - 0 erreur(s), 0 avertissement(s)
======== Régénération globale*: 1 a réussi, 0 a échoué, 0 a été ignoré ========
			
		
	
 cela vien t'il du fait que j'essai de controler le forms (public) depui un controle (privé)...comment y remedié ?