Voici comment faire une petite boîte de dialogue personnalisée dans Windows Mobile qui ressemble à ceci:
alt text http://www.freeimagehosting.net/uploads/b8fb5421d6.jpg
Ajouter un formulaire à votre projet, et définissez sa propriété FormBorderStyle Aucun. Cela permet de redimensionner et de positionner le formulaire, mais cela signifie également qu'il n'a ni bordure ni barre de titre, et que l'utilisateur n'a aucun moyen de le déplacer.
Donc, vous devez faire semblant tous les trois. La façon la plus simple de truquer la bordure et la barre de titre est de créer le BackColor de votre formulaire SystemColors.WindowFrame, puis de mettre une étiquette (avec "Dialog" dans l'image) avec BackColor = SystemColors.Highlight et ForeColor = SystemColor.HighlightText (et gras la police), puis mettre un panneau avec BackColor = SystemColors.Window où vous voyez blanc dans l'image. Vous devez modifier les positions et les tailles de l'étiquette et du panneau de sorte que vous ayez une bordure de 1 pixel (ce qui est juste le BackColor de votre formulaire).
Pour activer la forme d'être traîné autour par sa barre de titre faux, ajoutez ce code à la forme (et bien sûr vous devez câbler les événements, aussi):
private bool _Moving = false;
private Point _Offset;
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
_Moving = true;
_Offset = new Point(e.X, e.Y);
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (_Moving)
{
Point newlocation = this.Location;
newlocation.X += e.X - _Offset.X;
newlocation.Y += e.Y - _Offset.Y;
this.Location = newlocation;
}
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
if (_Moving)
{
_Moving = false;
}
}
Un autre problème est que Parce qu'il n'y a pas de véritable barre de titre, l'utilisateur n'a aucun moyen de fermer le formulaire.Vous devez ajouter un OK (ou Fermer) bouton et mettre cela en l'événement Click du bouton:
this.DialogResult = DialogResult.OK;
Normalement, vous devriez utiliser l'événement de la souris sur la barre de titre pour faciliter le déplacement, mais le contrôle de l'étiquette qui ne fonctionne pas avoir des événements de souris. Avec ce code, vous pouvez réellement saisir n'importe où sur le formulaire et le faire glisser, sauf que le panneau le bloque et fait de la barre de titre le seul endroit à saisir et à faire glisser.
Mon autre réponse contient plus de détails sur la récupération d'informations à partir des boîtes de dialogue personnalisées.
Mise à jour: en fait, il n'y a que évident façon de fermer un formulaire sans bordure sans ajouter votre propre bouton OK. Tant que vous ne définissez pas la propriété ControlBox de votre formulaire sur False, le bouton OK ou X dans le coin supérieur droit de l'écran Aujourd'hui fermera votre boîte de dialogue, même si ce n'est pas le cas, car ce n'est pas le cas. forme.
Quelle expérience avez-vous du développement Visual Studio, C# et winforms? – MusiGenesis
Cela permettrait de déterminer à quel point une réponse à cette question devrait être détaillée. :) – MusiGenesis
Je suis très expérimenté avec le C++, donc je peux généralement obtenir le jist général ... J'ai une quantité décente de travail en C#. Poser sur moi! – Matthew