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 :

[C#] Déplacer dynamiquement un controle ListBox


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 9
    Points : 11
    Points
    11
    Par défaut [C#] Déplacer dynamiquement un controle ListBox
    Je souhaite donner la possibilité aux utilisateurs de déplacer et redisposer des contrôles listbox sur un formulaire.

    existe-il un moyen d'y arriver.

    le moindre petit soupçon de piste m'aiderait.

    Je sèche.

    Merci[/code]

  2. #2
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Salut,

    Tu peux utiliser les api windows...

    Voici un exemple pour déplacer une form sans utiliser le clic sur la barre de titre :

    http://www.syncfusion.com/faq/window...earch/699.aspx

    Ca fonctionne très bien pour déplacer aussi les composants à l'intérieur de la form, il suffit de modifier le handle dans la fonction SendMessage et remplacer par le handle du composant.

    @+

  3. #3
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Pour faire plus concret :

    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
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    using System;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
     
    namespace Project7
    {
    	/// <summary>
    	/// Description Résumé de WinForm.
    	/// </summary>
    	public class WinForm : System.Windows.Forms.Form
    	{
    		public const int WM_NCLBUTTONDOWN = 0xA1;
    		public const int HTCAPTION = 0x2;
    		private System.Windows.Forms.CheckBox ChBoxTest;
     
    		[DllImportAttribute ("user32.dll")]
    		public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
     
    		[DllImportAttribute ("user32.dll")]
    		public static extern bool ReleaseCapture();
     
    		/// <summary>
    		/// Variable requise par le concepteur.
    		/// </summary>
    		private System.ComponentModel.Container components = null;
    		private System.Windows.Forms.Button BtnTest;
     
    		public WinForm()
    		{
    			//
    			// Requis pour la gestion du concepteur Windows Form
    			//
    			InitializeComponent();
     
    			//
    			// TODO: Ajouter tout le code du constructeur après l'appel de InitializeComponent
    			//
    		}
     
    		/// <summary>
    		/// Nettoyage des ressources utilisées.
    		/// </summary>
    		protected override void Dispose (bool disposing)
    		{
    			if (disposing)
    			{
    				if (components != null)
    				{
    					components.Dispose();
    				}
    			}
    			base.Dispose(disposing);
    		}
     
    		#region Code généré par le concepteur Windows Form
    		/// <summary>
    		/// Méthode requise pour la gestion du concepteur - ne pas modifier
    		/// le contenu de cette méthode avec l'éditeur de code.
    		/// </summary>
    		private void InitializeComponent()
    		{
    			this.BtnTest = new System.Windows.Forms.Button();
    			this.ChBoxTest = new System.Windows.Forms.CheckBox();
    			this.SuspendLayout();
    			// 
    			// BtnTest
    			// 
    			this.BtnTest.Location = new System.Drawing.Point(8, 48);
    			this.BtnTest.Name = "BtnTest";
    			this.BtnTest.Size = new System.Drawing.Size(112, 23);
    			this.BtnTest.TabIndex = 4;
    			this.BtnTest.Text = "Cliquez-moi !";
    			this.BtnTest.Click += new System.EventHandler(this.BtnTest_Click);
    			this.BtnTest.MouseDown += new System.Windows.Forms.MouseEventHandler(this.BtnTest_MouseDown);
    			// 
    			// ChBoxTest
    			// 
    			this.ChBoxTest.Location = new System.Drawing.Point(8, 8);
    			this.ChBoxTest.Name = "ChBoxTest";
    			this.ChBoxTest.Size = new System.Drawing.Size(120, 24);
    			this.ChBoxTest.TabIndex = 5;
    			this.ChBoxTest.Text = "Mode déplacement";
    			this.ChBoxTest.CheckedChanged += new System.EventHandler(this.ChBoxTest_CheckedChanged);
    			// 
    			// WinForm
    			// 
    			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    			this.AutoScroll = true;
    			this.ClientSize = new System.Drawing.Size(400, 301);
    			this.Controls.Add(this.ChBoxTest);
    			this.Controls.Add(this.BtnTest);
    			this.Name = "WinForm";
    			this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
    			this.Text = "WinForm";
    			this.ResumeLayout(false);
    		}
    		#endregion
     
    		/// <summary>
    		/// Le point d'entrée principal de l'application.
    		/// </summary>
    		[STAThread]
    		static void Main()
    		{
    			Application.Run(new WinForm());
    		}
     
    		private void BtnTest_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    		{
    			if(ChBoxTest.Checked)
    			{
    				ReleaseCapture();
    				SendMessage(BtnTest.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
    			}
    		}
     
    		private void BtnTest_Click(object sender, System.EventArgs e)
    		{
    			MessageBox.Show("Click");
    		}
     
    		private void ChBoxTest_CheckedChanged(object sender, System.EventArgs e)
    		{
    			if(ChBoxTest.Checked) BtnTest.Text = "Déplacez-moi !";
    			else BtnTest.Text = "Cliquez-moi !";
    		}
    	}
    }
    @+

  4. #4
    Membre confirmé Avatar de elbj
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Services à domicile

    Informations forums :
    Inscription : Novembre 2004
    Messages : 371
    Points : 558
    Points
    558
    Par défaut
    Bonsoir

    Tu peux aussi utiliser des outils de docking. Il y en a plein sur le net, dans www.codeproject.com d'ailleurs. Cela donnera un effet semblable à Visual Studio avec ancrage possible, ect...

    Cordialement

    Christophe
    Christophe B.

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    IMPECCABLE !

    Merci de votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6]comment supprimer dynamiquement un controle dynamique?
    Par totor le troll dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 06/07/2011, 21h10
  2. [VB.NET] Probleme avec controle Listbox ??
    Par Aspic dans le forum VB.NET
    Réponses: 4
    Dernier message: 10/11/2005, 13h30
  3. Réponses: 2
    Dernier message: 10/05/2005, 15h54
  4. [VB6] Création dynamique de controles dans un SSTab
    Par Txomin dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/12/2004, 11h13
  5. [VBA-E] Est il possible de creer dynamiquement des controles en VBA
    Par bbkenny dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 13/08/2004, 20h04

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