Je veux montrer un formulaire, mais je ne veux aucun des contrôles ciblés. Par exemple, maintenant, lorsque le formulaire est affiché, le bouton avec l'index tab 0 est mis au point. Je veux que le formulaire lui-même, pas un bouton, soit mis au point, de sorte que si l'utilisateur frappe accidentellement une touche, il ne fera rien. Est-ce possible? Merci!Comment afficher un formulaire sans aucun contrôle?
Répondre
Vous devriez probablement placer le focus quelque part relativement inoffensif au départ, tel que le bouton "Annuler" si votre formulaire contient une telle chose.
Une solution de contournement que j'ai testet;
private void Form1_Shown(object sender, EventArgs e)
{
textBox1.TabStop = false;
textBox1.Focus();
textBox1.Left = -300;
}
Ce « cache » la zone de texte en mettant l'accent en le déplaçant hors de la zone visible. En le faisant de cette manière hackish, la zone de texte conserve la possibilité d'avoir le focus.
[edit] Cela (évidemment) vous oblige à avoir une zone de texte nommée textBox1 sur votre formulaire qui n'est pas utilisé pour autre chose.
vous ne pouvez pas. Il existe une solution de contournement BTW. Ajouter un contrôle caché à la forme (une zone de texte par exemple) et faire
TextBox1.Focus();
en cas Form_Shown ou Form_Load.
Vous pouvez définir la propriété TabStop sur false pour chaque contrôle, mais vous ne pourrez pas passer d'un onglet à l'autre dans les contrôles. Cela peut être ou ne pas être une bonne solution pour vous, mais cela devrait empêcher l'un des contrôles de recevoir des données jusqu'à ce que l'utilisateur clique dessus.
Vous pouvez MyInvisibleLabel.Select();
dans _Load
ou, si vous en avez un, faites simplement la mise au point sur le bouton Quitter/Annuler/Fermer.
Essayez ceci: Ajoutez un contrôle Panel
à votre formulaire et conservez les paramètres par défaut. Le panneau peut avoir n'importe quelle taille et être positionné n'importe où. Je vais appeler ce membre m_panel
. Dans votre constructeur, définissez la propriété ActiveControl
de votre formulaire sur m_panel
. Enfin, assurez-vous que la propriété TabStop
du panneau est définie sur false
(ce qui est le cas par défaut).
Lorsque le formulaire est chargé, m_panel
obtient le focus. Cependant, puisque le panneau n'a pas de bordure et a la même couleur que l'arrière-plan du formulaire, il n'y a aucune indication qu'il existe, de sorte que vous pouvez effectivement dire que le formulaire lui-même a le focus, comme vous le vouliez. Lorsque l'utilisateur frappe d'abord Tab ou clique dans un contrôle, le panneau sera hors de l'équation (puisque TabStop
est false
) et les choses vont fonctionner normalement.
Remarque: vous pouvez également utiliser un Label
vide plutôt qu'un Panel
, tout ce qui vous convient. Vous pouvez même utiliser l'une de vos étiquettes existantes. N'oubliez pas d'utiliser ActiveControl
pour spécifier le contrôle d'intérêt, ou le concentrer explicitement en appelant Focus
, car il n'obtiendra pas le focus automatiquement.
La réponse de vaitrafra est suffisante, mais s'il vous arrive d'avoir une étiquette sur votre formulaire, vous pouvez simplement mettre l'accent sur ce point. La réponse acceptée here fournit un peu plus d'informations sur la raison pour laquelle vous ne pouvez pas vous assurer que tous les contrôles du formulaire n'ont pas le focus.
Bon point sur le fonctionnement de l'étiquette. – Charlie
Si vous définissez l'étiquette à mettre au point pendant le chargement de la page, cela ne fonctionnera pas.Ce que vous devez faire est de définir le contrôle actif de la page sur l'étiquette que vous voulez mettre au point à la place de la zone de texte.
ex: this.ActiveControl = lbltest;
La solution est simple:
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
ActiveControl = null;
}
Par ailleurs, si toutes les commandes sont à l'intérieur d'un panneau à quai pour remplir, vous pouvez vous concentrer le panneau:
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
pnlMain.Focus();
}
Avec l'une ou l'autre approche, appuyez sur la touche de tabulation pour ensuite mettre au point le premier contrôle dans l'ordre des onglets.
- 1. Contrôle sans un formulaire dans VB.NET
- 2. Comment imprimer un rapport ReportViewer sans afficher de formulaire
- 3. Afficher conteneur d'un contrôle dans un formulaire
- 4. Est-il possible de soumettre un formulaire dans asp.net sans aucun contrôle de serveur
- 5. Rendre un contrôle ActiveX fonctionne sans un formulaire?
- 6. Comment afficher l'écran Aucun résultat sur UISearchDisplayController?
- 7. comment afficher aucun par le code derrière
- 8. Winforms: Comment afficher un formulaire de "chargement"?
- 9. sérialiser sans un formulaire?
- 10. Alternatives au contrôle utilisateur ASCX sans formulaire côté serveur?
- 11. Comment valider un formulaire sans JavaScript?
- 12. wget sans aucun en-tête
- 13. Aucun contrôle créé sur page_load
- 14. Afficher un formulaire d'une page Web
- 15. Comment afficher l'historique d'Internet Explorer dans un contrôle?
- 16. Comment exécuter un script PowerShell sans afficher de fenêtre?
- 17. Tri dans gridview sans aucun contrôle de liaison de données - comment le faire?
- 18. Excel VBA: quel contrôle OLE/OCX utiliser pour afficher un graphique dans un formulaire?
- 19. Comment remplir un champ de formulaire sans nom dans le contrôle webbrowser?
- 20. Comment puis-je afficher un formulaire sur un moniteur secondaire?
- 21. Comment faire un SimpleFormController afficher un formulaire en utilisant HTTPS
- 22. .NET: Comment convertir un formulaire Windows en un contrôle Windows
- 23. Comment afficher un document html dans un contrôle ASP
- 24. Afficher un petit formulaire lorsque le formulaire principal est "verrouillé"
- 25. comment supprimer SuppressWarnings (« sans contrôle »)
- 26. formulaire intégré dans un contrôle ou un formulaire de contrôle de l'utilisateur
- 27. en soumettant un formulaire sans utiliser submit?
- 28. jQuery: Afficher l'infobulle sans lien
- 29. Aucun changement pour l'index de DropDownList dans un contrôle personnalisé!
- 30. jQuery formulaire liste de contrôle
Oui, mais sachez que cela peut être un peu déroutant pour les utilisateurs qui se déplacent beaucoup avec la touche de tabulation car la mise au point saute parfois à un endroit qu'il ne peut pas voir. Et assurez-vous que vous définissez le tabindex du contrôle caché correctement. –
évidemment, il est préférable de définir TextBox1.TabStop = false. – vaitrafra
J'ai essayé cette solution de contournement et cela ne semble pas fonctionner. Le focus semble revenir au premier contrôle visible dans le taborder – LaustN