Question

Je suis un programmeur inexpérimenté, complètement nouveau en programmation pour Windows.

J'écris un petit programme que j'ai toujours voulu. Il est écrit en utilisant C # en utilisant le framework .net. au moins c'est ce que je pense faire. Toutes les discussions sur le framework et les réseaux, les formulaires Windows et l’API Win32 m’ont vraiment déroutée ..: (

de toute façon, j'ai un objet formulaire simple.

 Form f = new Form() ;
 f.Text = "" ;   
 f.ControlBox =false ;

Maintenant Comment supprimer toutes les bordures du formulaire, sauf un côté? Comme dans, les bordures latérales doivent disparaître, mais la bordure supérieure doit rester

FormBorderStyle n'a rien pour cela

De plus, comment voulez-vous résoudre ces problèmes vous-même, sans demander? regarder le code des autres? lire un livre? un site web particulier? J'ai googlé, mais ça n'a rien donné.

Était-ce utile?

La solution

Jeudi,

Malheureusement, cela est impossible - vous pouvez supprimer la bordure entière, puis dessiner le vôtre sur le formulaire et utiliser OnMouseDown, OnMouseUp et OnMouseMove pour faire votre propre glissement ...

Pour résoudre moi-même un problème de ce type, j’examinerais différentes manières de le représenter verbalement (par exemple, "Formulaire sans bordure", "Personnaliser les bordures de Winform", etc.) et passer un peu de temps à la recherche de Google. . Comme le dit sagement mon patron, la productivité ne dépend pas toujours de la quantité de code que vous avez coupé, mais aussi de ce que vous pouvez apprendre.

EDIT: Comme le dit l'expression populaire, "Google sait tout". - Il est probable que, si vous passez un peu de temps à chercher sur Google et que vous ne trouvez toujours rien, cela n'a probablement pas été résolu, ou c'est très très rare. Une autre solution consisterait à investir dans quelques bons livres, par exemple Programmation Windows Forms (ou même simplement la programmation Windows - il est extrêmement utile de connaître les mécanismes sous-jacents de Windows. Ce sont ces éléments qui vous permettent de devenir un excellent développeur. Un excellent programmeur sait bien coder, mais un excellent développeur est doué pour construire des logiciels utiles.:)

Autres conseils

Je suppose que vous avez essayé FormBorderStyle.FixedSingle? Cela afficherait un formulaire avec une bordure en haut uniquement. Quoi qu'il en soit, si ce n'est pas le cas, vous pouvez définir les formulaires Région.

Quelque chose comme ...

public static void HideBorders(Form form)
{
    Rectangle newRegion = form.Bounds;
    Rectangle formArea = form.Bounds;
    Rectangle clientArea = form.RectangleToScreen(form.ClientRectangle);

    formArea.Offset(form.Location);
    newRegion.Offset(clientArea.X - formArea.X, 0);
    newRegion.Width = clientArea.Width;
    newRegion.Height = (clientArea.Y - formArea.Y) + clientArea.Height;

    form.Region = new Region(newRegion);
}

Quant à comment savez-vous quoi faire? Toutes les choses que vous avez mentionnées, fichiers d’aide, forums Web, livres. L'essentiel est la pratique, pratique, pratique. Plus vous faites quelque chose, mieux vous devriez devenir.

Je ne pense pas qu'il soit réellement possible de faire exactement ce que vous décrivez, car .NET Framework va simplement déléguer le dessin de la bordure et de la barre de titre de votre formulaire à Windows lui-même, qui n'a aucune option pour ce que vous décrivez AFAIK.

Au lieu de cela, je voudrais plutôt utiliser FormBorderStyle.None , puis dessiner manuellement les décorations de fenêtre (barre de titre, bordures) souhaitées.

Une recherche Google sur "& C; Formulaire sans bordure C #" fait de ces sites les trois premiers succès:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top