Je veux capturer le texte de la zone de texte lorsque la touche Entrée est atteinte. J'utilise WPF/Visual Studio 2010/.NET 4. Je ne sais pas quel gestionnaire d'événement à utiliser dans le tag? Je veux aussi faire la même chose pour maskedtextbox.Entrée touche pressée gestionnaire d'événements
Répondre
KeyDown ou KeyUp.
TextBox tb = new TextBox();
tb.KeyDown += new KeyEventHandler(tb_KeyDown);
static void tb_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
//enter key is down
}
}
Comment puis-je le faire pour le maskedtextbox? sa radmaskedtextbox – zack
la radmaskedtextbox ne donne pas une option de "AcceptsReturn" à l'intérieur de l'étiquette .. – zack
Rien ne serait différent. MaskedTextBox a les mêmes gestionnaires d'événement. En fait, tous les contrôles les ont. – tafa
L'événement KeyDown ne déclenche à la zone de texte standard ou MaskedTextBox par des touches d'entrée « normales », et non ENTRER ou TAB et ainsi de suite.
On peut obtenir des touches spéciales comme ENTRER en remplaçant la méthode IsInputKey:
public class CustomTextBox : System.Windows.Forms.TextBox
{
protected override bool IsInputKey(Keys keyData)
{
if (keyData == Keys.Return)
return true;
return base.IsInputKey(keyData);
}
}
Ensuite, on peut utiliser l'événement KeyDown de la manière suivante:
CustomTextBox ctb = new CustomTextBox();
ctb.KeyDown += new KeyEventHandler(tb_KeyDown);
private void tb_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
//Enter key is down
//Capture the text
if (sender is TextBox)
{
TextBox txb = (TextBox)sender;
MessageBox.Show(txb.Text);
}
}
}
Vous pouvez également utiliser PreviewKeyDown dans WPF :
<TextBox PreviewKeyDown="EnterClicked" />
ou en C#:
myTextBox.PreviewKeyDown += EnterClicked;
Et puis dans la classe ci-joint:
void EnterClicked(object sender, KeyEventArgs e) {
if(e.Key == Key.Return) {
DoSomething();
e.Handled = true;
}
}
En WPF, élément TextBox ne se occasion d'utiliser le bouton « Enter » pour créer KeyUp événement jusqu'à ce que vous ne définissez la propriété: AcceptsReturn = « true » . Mais, cela ne résoudrait pas le problème de gestion de KeyUp Event dans l'élément TextBox. Après avoir appuyé sur "ENTER" vous obtiendrez une nouvelle ligne de texte dans TextBox.
J'ai résolu le problème de l'utilisation de l'élément KeyUp Event de TextBox en utilisant la stratégie d'événement Bubble. C'est court et facile. Il faut attacher un gestionnaire d'événement KeyUp dans certains (tout) élément parent:
XAML:
<Window x:Class="TextBox_EnterButtomEvent.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:TextBox_EnterButtomEvent"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid KeyUp="Grid_KeyUp">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height ="0.3*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="1" Grid.Column="1" Padding="0" TextWrapping="WrapWithOverflow">
Input text end press ENTER:
</TextBlock>
<TextBox Grid.Row="2" Grid.Column="1" HorizontalAlignment="Stretch"/>
<TextBlock Grid.Row="4" Grid.Column="1" Padding="0" TextWrapping="WrapWithOverflow">
You have entered:
</TextBlock>
<TextBlock Name="txtBlock" Grid.Row="5" Grid.Column="1" HorizontalAlignment="Stretch"/>
</Grid></Window>
C# partie logique (KeyUp gestionnaire d'événement est fixé à un élément de grille):
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Grid_KeyUp(object sender, KeyEventArgs e)
{
if(e.Key == Key.Enter)
{
TextBox txtBox = e.Source as TextBox;
if(txtBox != null)
{
this.txtBlock.Text = txtBox.Text;
this.txtBlock.Background = new SolidColorBrush(Colors.LightGray);
}
}
}
}
RÉSULTAT:
- 1. déterminer quelle touche est pressée
- 2. iPad: Gestionnaire d'événements pour la touche "Suivant"/"Entrée"?
- 3. Changement de la touche pressée avec C#
- 4. Déterminer si une touche est actuellement pressée
- 5. Comment attraper événement touche pressée avec UIBinder
- 6. PostgreSql + Escape Entrée clé de l'instruction de requête, c'est-à-dire Entrée touche pressée entre les données
- 7. VB.net touche Entrée
- 8. Pause lorsque la touche de raccourci est pressée
- 9. Recharger le contrôleur de vue lorsque la touche est pressée
- 10. Déclenchez une pression sur une touche avec jQuery ... et spécifiez quelle touche a été pressée
- 11. Stop While vrai boucle avec une touche spécifique ou une touche pressée dans un script php
- 12. Forme Sumbit avec la touche Entrée et recherche du curseur
- 13. Java/AWT/Swing: comment distinguer la touche d'entrée ou de retour pressée
- 14. touche le gestionnaire d'événements pour UIImageView
- 15. jquery saisie semi-automatique touche entrée
- 16. touche Entrée soumettre wont forme dans IE6
- 17. Bash Shell Script - retour clé/touche Entrée
- 18. Comment ignorer la touche Entrée dans RichTextBox
- 19. ASP.Net ImageButton Volant Entrée touche Appuyez sur
- 20. Disbale DataGridViewRow lorsque CTRL Unselect est pressée
- 21. Comment lire une touche pressée par l'utilisateur et l'afficher sur la console?
- 22. Comment vérifier si la touche d'option est pressée au démarrage d'un mac bash Application
- 23. contenu cellulaire Supprimer dans un DataGrid WPF lorsque la touche Supprimer est pressée
- 24. Comment vérifier si une touche est actuellement pressée avec Tkinter en Python?
- 25. Comment puis-je vérifier si une touche est pressée pendant l'événement click avec jQuery?
- 26. jquery (ou js pur) simuler la touche d'entrée pressée pour tester
- 27. comment détecter quand une touche de raccourci est pressée en javascript
- 28. Vérifiez si la touche est pressée en utilisant python (un démon en arrière-plan)
- 29. Lors de la modification d'une entrée de texte, comment effectuer une action JavaScript spécifique en appuyant sur la touche "Entrée" sans le gestionnaire onSubmit du formulaire?
- 30. Faire un bouton JDialog répondre à la touche Entrée
Pouvez-vous nous montrer ce que vous avez fait jusqu'à présent? – tafa
private void maskedtxtbox_KeyDown (expéditeur d'objet, System.Windows.Input.KeyEventArgs e) { if (e.SystemKey == System.Windows.Input.Key.Enter) {// faire quelque chose ici – zack