IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Déplacer winform sans les bordures de bases.


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 40
    Points : 29
    Points
    29
    Par défaut Déplacer winform sans les bordures de bases.
    Bonjour, je suis en train de créer une application utilisant winform, et pour l' interface de mon application j' ai décider de faire moi même ma barre de tache.
    J' ai donc fait les contrôle de base : fermer, et réduire.
    Mais j' aimerai que lorsque je maintient ma barre de tache qui est une image, je puisse la déplacer.

    J' ai deja fais des recherche et je suis en train de bidouiller, mais je ne trouve pas. Si quelqu' un pouvait me donner un coup de main.

    Merci d' avance !!

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 262
    Points : 230
    Points
    230
    Par défaut
    Salut,

    dans cet exemple de création d'un keygen, il montre comment déplacer la form quand tu cliques sur une image (c'est gérer dans les évènements de la Form):
    [ame="http://www.youtube.com/watch?v=s1NG5OfBAWg"]http://www.youtube.com/watch?v=s1NG5OfBAWg[/ame]

    A+
    Tox

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    salut, et mercii pour ton lien. Je ne peux pas voir ta video pour le moment (mais dés que possible j' irais voir ça !!!

    Et je sais qu' il faut passer par un événement de souris mais je ne sais pas comment l' interpréter.

  4. #4
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour remirobert

    Voici un code exemple avec une image rectangulaire "barretache" de ton cru et un bouton BtnClose ajoute sur l'image "barretache"(coin droit)......
    Le form est skinne par un path qui dessine une ellipse.......
    Le bouton gauche souris appuye quand on sur la "barretache" permet de de deplacer le form......

    code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Drawing.Drawing2D;
     
    namespace WinSkinned
    {
        public partial class frmSkinned : Form
        {
            private Point mouseOffset; 
            private Boolean isMouseDown = false;
     
            private Bitmap bmp;
            private Rectangle rectBmp;
            private Button btnClose; 
            public frmSkinned()
            {
                InitializeComponent();
     
     
                bmp=WinSkinned.Properties.Resources.barretache;
                rectBmp = new Rectangle(20, this.Top+this.Width/2, bmp.Width, bmp.Height);
     
                //ajout d' un bouton positionne sur l'image coin droit 
                //meme hauteur image
     
                btnClose = new Button();
                btnClose.Text = "Close";
                btnClose.Size=new Size(40,20);
                btnClose.Location = new Point(rectBmp.Right - btnClose.Width, rectBmp.Top);
                this.Controls.Add(btnClose);
                //handler du bouton
                btnClose.Click+=new EventHandler(btnClose_Click);
            }
            private void btnClose_Click(object sender,System.EventArgs e)
            {
             this.Close();
            }
            private void frmSkinned_Paint(object sender, PaintEventArgs e)
            {
               GraphicsPath  path = new GraphicsPath();
               Rectangle rectPath = new Rectangle(0, 0, this.Width, this.Height );
               path.AddEllipse(0, 0, rectPath.Width, rectPath.Height);
     
               e.Graphics.FillPath(Brushes.Aquamarine, path);
               e.Graphics.DrawPath(new Pen(Brushes.Black, 2.0F), path);
               e.Graphics.DrawImage(bmp, rectBmp.Left,rectBmp.Top , bmp.Width, bmp.Height);
     
              // le region est une "area" definie par le path
              // c'est la "area visible &  clickable"   d'un controle
     
              this.Region = new Region(path);
     
            }
     
            private void frmSkinned_MouseDown(object sender, MouseEventArgs e)
            {
                Point ptMove = e.Location;
     
     
                if (e.Button == MouseButtons.Left &&  rectBmp.IsEmpty==false)
                {
                    if (rectBmp.Contains(ptMove))
                    {
                        int xOffset = -e.X;
                        int yOffset = -e.Y ;
                        mouseOffset =  new Point(xOffset, yOffset);
                        isMouseDown = true;
                    }
     
                }
     
            }
     
            private void frmSkinned_MouseMove(object sender, MouseEventArgs e)
            {
                if (isMouseDown)
                {
                    Point mousePos= Control.MousePosition;
                    mousePos.Offset(mouseOffset.X, mouseOffset.Y);
                    this.Location = mousePos;
                }
     
     
             }
     
            private void frmSkinned_MouseUp(object sender, MouseEventArgs e)
            {
                // Changes the isMouseDown field so that the form does
                // not move unless the user is pressing the left mouse button.
    		    if (e.Button == MouseButtons.Left)
                {
                     isMouseDown = false;
                }
     
     
            }
        }
    }
    bon code......

Discussions similaires

  1. [2.x] Conserver des infos sans les entrer en base
    Par gasmichou dans le forum Symfony
    Réponses: 7
    Dernier message: 28/07/2011, 16h37
  2. [Script] Effacement d'une base (sans les contraintes)
    Par plutonium719 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 12/10/2007, 03h49
  3. Réponses: 1
    Dernier message: 05/09/2007, 13h54
  4. Faire une copie de base sans les enregistrements.
    Par ElsasseR dans le forum Access
    Réponses: 4
    Dernier message: 17/12/2006, 16h15
  5. [ODBC] Utiliser une base de données Access sans les MFC
    Par Higestromm dans le forum Bases de données
    Réponses: 6
    Dernier message: 15/03/2005, 21h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo