Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1717 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#] Form Maximized et TaskBar

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C#] Form Maximized et TaskBar

n°1134405
th3r1ddl3r
Posté le 29-06-2005 à 10:02:04  profilanswer
 

1)
Alors voici mon problème:  
il faut deux écrans  
je crée une nouvelle application C#  
je met ma form en Maximized dans le concepteur par exemple..  
je lance l'application...  
Ma form est bien maximisée  
Je déplace la barre des tâches sur un autre écran..  
et la (ca le fais chez moi en tout cas) la form reste telle quelle (elle flicker comme si elle allé être redimensionné) et n'est pas automatiquement resizé aux nouvelles dimensions de la WorkingArea...  
Alors si on la dé-maximize et on la remaximize à la main, elle prends bien une dimension cohérente à savoir la Working area... pourquoi ?? et comment corriger ceci ??
 
2)WM_WINDOWPOSCHANGED  
 
En mode debug pas a pas, c'est appelé trois fois apres déplacement de la taskbar:  
un qui m'aggrandi ma fenetre a la bonne workingarea  
un qui me reduit ma fenettre a la mauvaise workingarea  
un qui m'aggrandi ma fenetre a la bonne workingarea  
A la suite de ca ma form est bien redimensionné
 
En mode normal, c'est appelé deux fois apres déplacement de la taskbar:  
un qui m'aggrandi ma fenetre a la bonne workingarea  
un qui me reduit ma fenettre a la mauvaise workingarea  
A la suite de ca ma form n'a pas bougé
 
Pourquoi??
 
3)sur WndProc je log ca dans la console :
System.Console.WriteLine("1:" + Screen.AllScreens[0].WorkingArea.Height.ToString());
System.Console.WriteLine("2:" + SystemInformation.WorkingArea.Height.ToString());
 
On a pas la même chose :
WorkingArea de SystemInformation évolue selon l'évolution de la barre des taches
WorkingArea de Screen reste pareil  
Pourquoi??
Comment faire pour obtenir avec systemInformation la workingarea d'autres ecrans??
 
4) le code

Code :
  1. using System;
  2. using System.Drawing;
  3. using System.Collections;
  4. using System.ComponentModel;
  5. using System.Windows.Forms;
  6. using System.Data;
  7. namespace WindowsApplication1
  8. {
  9. /// <summary>
  10. /// Description résumée de Form1.
  11. /// </summary>
  12. public class Form1 : System.Windows.Forms.Form
  13. {
  14.  /// <summary>
  15.  /// Variable nécessaire au concepteur.
  16.  /// </summary>
  17.  private System.ComponentModel.Container components = null;
  18.  public Form1()
  19.  {
  20.   //
  21.   // Requis pour la prise en charge du Concepteur Windows Forms
  22.   //
  23.   InitializeComponent();
  24.   //
  25.   // TODO : ajoutez le code du constructeur après l'appel à InitializeComponent
  26.   //
  27.  }
  28.  /// <summary>
  29.  /// Nettoyage des ressources utilisées.
  30.  /// </summary>
  31.  protected override void Dispose( bool disposing )
  32.  {
  33.   if( disposing )
  34.   {
  35.    if (components != null)
  36.    {
  37.     components.Dispose();
  38.    }
  39.   }
  40.   base.Dispose( disposing );
  41.  }
  42.  #region Code généré par le Concepteur Windows Form
  43.  /// <summary>
  44.  /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
  45.  /// le contenu de cette méthode avec l'éditeur de code.
  46.  /// </summary>
  47.  private void InitializeComponent()
  48.  {
  49.   //  
  50.   // Form1
  51.   //  
  52.   this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
  53.   this.ClientSize = new System.Drawing.Size(328, 285);
  54.   this.Name = "Form1";
  55.   this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
  56.   this.Text = "Form1";
  57.  }
  58.  #endregion
  59.  /// <summary>
  60.  /// Point d'entrée principal de l'application.
  61.  /// </summary>
  62.  [STAThread]
  63.  static void Main()
  64.  {
  65.   Application.Run(new Form1());
  66.  }
  67.  protected override void WndProc(ref Message msg)
  68.  {
  69.   const int WM_SIZE=5;
  70.   const int WM_WININICHANGE=26;
  71.   const int WM_WINDOWPOSCHANGED=71;
  72.   const int WM_WINDOWPOSCHANGING=70;
  73.   const int WM_GETMINMAXINFO=36;
  74.   const int WM_MOVE =3;
  75.   //const int WM_ERASEBKGND=20;
  76.   //const int WM_NCCALCSIZE=131;
  77.   /*switch(msg.Msg)  
  78.   {  
  79.    //case WM_SIZE:
  80.    //case WM_ENTERSIZEMOVE:
  81.    //case WM_SIZING:
  82.    //case WM_WININICHANGE:
  83.    //case WM_WINDOWPOSCHANGED:
  84.    case WM_WINDOWPOSCHANGED:
  85.      return;
  86.   } */
  87.   // call the base class WndProc for default message handling
  88.   System.Console.WriteLine("1:" + Screen.AllScreens[0].WorkingArea.Height.ToString());
  89.   System.Console.WriteLine("2:" + SystemInformation.WorkingArea.Height.ToString());
  90.   System.Console.WriteLine(msg.Msg);
  91.   base.WndProc(ref msg);
  92.  }
  93. }
  94. }


 
Merci pour tout l'aide que vous pourrez m'apporter
 :jap:  
 

mood
Publicité
Posté le 29-06-2005 à 10:02:04  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#] Form Maximized et TaskBar

 

Sujets relatifs
Atteindre les variables de la Form princale depuis une autre Formpb de boutons et de <form>
Gérer form, picturebox[C#] Rendre une form transparente
Passer les variables d'un form en paramètre<FORM method="POST" ENCTYPE="multipart/form-data">
question communication entre form[Résolu] Créer des contrôles dynamiquement sur une form
Attribut runat de <form> : kezako ?Form
Plus de sujets relatifs à : [C#] Form Maximized et TaskBar


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR