Obtenir la valeur de retour de la touche enfoncée
J'ai un formulaire qui apparaît à un événement spécifique. Il établit des boutons à partir d'un tableau et définit la valeur de Balise à une valeur spécifique. Donc, si vous êtes à la presse ou cliquez sur ce bouton, la fonction doit retourner la valeur du Tag.
Comment puis-je faire cela? Et comment puis-je savoir quel bouton a été cliqué?
En ce moment, le code renvoie DialogResult, mais je veux retourner à l'Étiquette de valeur de la fonction. Comment puis-je modifier mon code pour qu'il puisse faire cela?
public static DialogResult SelectBox(string title, string[] btnArray, string[] btnValueArray)
{
Form form = new Form();
Button[] buttonArray;
buttonArray = new Button[5];
form.Text = title;
for (int i = 0; i < btnArray.Length; i++)
{
buttonArray[i] = new Button();
buttonArray[i].Text = btnArray[i];
buttonArray[i].Tag = new int();
buttonArray[i].Tag = btnValueArray[i];
buttonArray[i].TabStop = false;
buttonArray[i].Location = new System.Drawing.Point(0, i * 40);
buttonArray[i].Size = new System.Drawing.Size(240, 40);
}
form.ClientSize = new Size(240, 268);
form.Controls.AddRange(new Control[] { buttonArray[0], buttonArray[1], buttonArray[2] });
form.FormBorderStyle = FormBorderStyle.FixedDialog;
form.StartPosition = FormStartPosition.CenterScreen;
form.MinimizeBox = false;
form.MaximizeBox = false;
DialogResult dialogResult = form.ShowDialog();
return dialogResult;
}
OriginalL'auteur Arto Uusikangas | 2011-01-25
Vous devez vous connecter pour publier un commentaire.
Ajout d'une variable dans la forme:
Ajouter un bouton gestionnaire de clic:
Attribuer le gestionnaire pour chaque bouton que vous créez:
Puis dans votre fonction statique, il suffit de retourner
form.SelectedTag
au lieu de la dialogresult.OriginalL'auteur Blorgbeard
On pourrait appeler le même événement click pour tous les boutons. puis dans votre gestionnaire de:
OriginalL'auteur WraithNath
La
DialogResult
bien déjà vous indique quel bouton a été cliqué. Vous pouvez configurer chaque bouton pour retourner un autreDialogResult
, puis cochez la case pour qu'à la fin de la fonction.Et si vous voulez retourner à l'cliqué bouton
Tag
de la propriété au lieu de cela, vous devez modifier la valeur renvoyée de la fonction deObject
(parce que leTag
de la propriété est de typeObject
).Ouais, si c'est le cas, vous aurez besoin de faire un peu plus de travail. Rarement (voire jamais) si un formulaire contenant plus de 8 boutons.
Il suffit d'ouvrir Microsoft Outlook, Allez dans Outils > Options et vous verrez (uniquement dans le premier onglet) 13 😉
Outlook la boîte de dialogue Options n'est pas un bon exemple de l'INTERFACE utilisateur!
OriginalL'auteur Cody Gray
Vous pouvez ajouter un ButtonClick gestionnaire d'événement dans un TestForm, placer le bouton de la balise de la Forme de la balise.
Voici l'échantillon.
Formulaire Principal:
TestForm qu'dont l'exemple nous créons dans la SelectBox dialogue:
Edit:
Si vous voulez capturer chaque valeur du bouton d'exposer un
Dictionary<String, Object>
Étiquettes de propriété.OriginalL'auteur Vijay Sirigiri