/// <summary> /// Active l'édition du mot de passe /// </summary> private void BtnPwd_Click(object sender, EventArgs e) { _pwdHasChange = true; // à faire au tout début pour éviter tout problème avec le TextChange // Récupère le bouton et le rend invisible Button btn = (Button)sender; btn.Visible = false; tbxPwd.ReadOnly = false; // Active l'édition du champs tbxPwd.Text = String.Empty; // Efface la TextBox pour ne pas garder le mdp encrypter qui s'y trouvait // Affiche le Label et la TextBox de confirmation tbxPwdConfirm.Visible = true; lblPwdConfirm.Visible = true; // Ajoute un bouton qui permet d'annuler la modification du mot de passe Design.AddEditButtonForControl(tbxPwdConfirm, gbxInformation, "BtnPwdConfirm", "Wingdings 2", "Ò", BtnPwdConfirm_Click, EDIT_TAG); }
/// <summary> /// Active ou désactive le mode d'édition du profil /// </summary> /// <param name="inEdit">Si true alors on active l'édition, sinon on la désactive</param> private void EditMode(bool inEdit) { // Gestion de la visibilité des champs non-dynamique #region ControlsVisibility lblPwd.Visible = !lblPwd.Visible; tbxPwd.Visible = !tbxPwd.Visible; lblRooms.Visible = !lblRooms.Visible; lblFriends.Visible = !lblFriends.Visible; btnSave.Visible = !btnSave.Visible; btnCancel.Visible = !btnCancel.Visible; tbxNewHobbie.Visible = !tbxNewHobbie.Visible; tbxEmail.ReadOnly = !tbxEmail.ReadOnly; tbxPhone.ReadOnly = !tbxPhone.ReadOnly; rtbDescription.ReadOnly = !rtbDescription.ReadOnly; #endregion ControlsVisibility if (inEdit) // Mode edition on { // On gère la visibilité des liens avec des valeures fixe pour éviter un bug // il y avait une chance que les liens restaient visible à cause de l'ajout/du retrait d'onglet lnkEditProfil.Visible = false; lnkEditProfil2.Visible = false; // On retire les pages d'onglet qui ne correspondent pas à celle du profil tcWindows.TabPages.Remove(tpHome); tcWindows.TabPages.Remove(tpFriends); tcWindows.TabPages.Remove(tpRooms); tcWindows.TabPages.Remove(tpSettings); // On récupère le mot de passe de l'utilisateur et on l'affiche dans le textbox tbxPwd.Text = _requestsSQL.GetUserPasswordByUsername(_frmLogin.Username); // On ajoute des boutons qui permettront d'éditer les différentes informations de l'utilisateur Design.AddEditButtonForControl(tbxPwd, gbxInformation, "BtnPwd", "Wingdings", "!", BtnPwd_Click, EDIT_TAG); _btnNewHobbies = Design.AddEditButtonForControl(tbxNewHobbie, gbxInformation, "BtnNewHobbie", "Wingdings 2", "Ì", BtnNewHobbie_Click, EDIT_TAG); _btnNewHobbies.Enabled = false; // On ajoute la colonne des boutons if (!dgvHobbies.Columns.Contains("ColumnButton")) { dgvHobbies.Columns.Add(ColumnButton); } // TODO : Bordure en traitillé pour l'avatar //_rePaint = true; //pbxAvatar2.Refresh(); // Ajout d'une bordure et changement du curseur sur les picturebox // pour indiqué que l'on peut changer l'image en cliquant dessus _rePaint = true; pbxBackground2.Refresh(); pbxAvatar2.Cursor = Cursors.Hand; pbxBackground2.Cursor = Cursors.Hand; } else // Mode edition off { // On gère la visibilité des liens avec des valeures fixe pour éviter un bug // il y avait une chance que les liens restaient visible à cause de l'ajout/du retrait d'onglet lnkEditProfil.Visible = true; lnkEditProfil2.Visible = true; // Gestion des onglets #region TabPages // Ajoute les pages d'onglet de l'application tcWindows.TabPages.Add(tpHome); // on doit retirer l'onglet du profil puis le rajouter pour avoir les onglets dans le bonne ordre // mais on ne doit pas le retirer si il s'agit du dernier onglet présent, il faut d'abord en ajouter un autre tcWindows.TabPages.Remove(tpProfil); tcWindows.TabPages.Add(tpProfil); tcWindows.TabPages.Add(tpFriends); tcWindows.TabPages.Add(tpRooms); tcWindows.TabPages.Add(tpSettings); #endregion TabPages DisposeEditsControls(); // Supprime les composants dynamiques de l'édition string hobbies = _requestsSQL.GetUserHobbiesByUsername(_frmLogin.Username); UpdateHobbies(dgvHobbies, hobbies); // Met à jour le DataGridView des hobbies // On (ré)affiche la bonne image pour si jamais l'utilisateur avait annulé sa modification du profil // TODO : les images sont mal enregistrer (en local) pbxAvatar2.Image = _imgAvatar; pbxBackground2.Image = _imgBackground; pbxAvatar2.Cursor = Cursors.Arrow; pbxBackground2.Cursor = Cursors.Arrow; } _inEdit = inEdit; }