2010-08-07 10 views
3

Hey les gars, le following tutorial montre comment prendre le texte d'une zone de texte et l'afficher dans un bloc de texte lorsque l'utilisateur appuie sur un bouton. Assez simple ... mais ce que je veux faire est au lieu de frapper un bouton qui ajoute le texte que je veux que le bouton d'entrée pour le faire.WP7 Avoir la touche d'entrée envoyer du texte de textbox à un bloc de texte

En cherchant ici, j'ai trouvé le code suivant mais il ne semble pas faire quoi que ce soit.

private void textBox_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.Key == Key.Enter) 
     { 
      listBox.Items.Add(textBox.Text); 
     } 
    } 

Ainsi, la zone de texte qui a la chaîne est appelée zone de texte et je veux le texte de cette zone de texte à ajouter à ma liste (listBox). Quand je clique sur le bouton d'entrée, il ne fait rien. De l'aide?

Merci!

+0

Essayez d'ajouter un point d'arrêt à la ligne avec l'instruction if, debug, puis examinez e.Key pour voir quelle clé est en cours d'enregistrement. –

+0

ouais, on ne l'appelle jamais. J'aime les points d'arrêt btw. Y at-il un moyen d'appeler le clavier dans wp7? Je peux définir un même comme un bouton, mais qu'en est-il un clavier? hmmm laissez-moi regarder autour, cette suggestion de point de rupture m'a mis sur la bonne voie. – Court

Répondre

1

Vous devrez connecter ce gestionnaire d'événement à l'événement KeyDown de la zone de texte si ce n'est pas déjà fait. Vous pouvez le faire via l'onglet Evénements de la fenêtre des propriétés, tandis que la zone de texte est ciblée - ou vous pouvez double-cliquer là et VS créera pour vous un nouveau gestionnaire d'événements dans lequel vous pouvez placer le code ci-dessus.

+0

Le code que j'ai dans mon post ne le ferait-il pas? Il est également accroché à la page xaml. – Court

+0

Pas simplement en ajoutant la méthode. Vous devez connecter l'événement à la méthode en utilisant l'une des techniques que j'ai mentionnées. –

+0

+1 à partir de ses commentaires cela semble être la réponse, dommage qu'il n'ait pas choisi cette réponse (ou aucune) comme réponse –

6

Vous pouvez intercepter la touche Entrée à partir du clavier à l'écran, mais pas à partir du clavier d'un PC exécutant l'émulateur.

est ici un code pour prouver qu'il fonctionne:

Créer une nouvelle application de téléphone. Ajouter ce qui suit à la grille de contenu

<ListBox Height="276" HorizontalAlignment="Left" Margin="14,84,0,0" Name="listBox1" VerticalAlignment="Top" Width="460" /> 

Puis dans le code derrière, ajouter ce qui suit:

private void textBox1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Key == Key.Enter) 
    { 
     this.listBox1.Items.Add(textBox1.Text); 
    } 
} 
+0

-1: Il a fait très clair qu'il est en train de cliquer sur la touche Entrée pour qu'il n'utilise pas le clavier sur le PC. De plus votre code est EXACTEMENT le même que celui qu'il déclare ne fonctionne pas –

0

@Court de la réponse que vous avez donné @Trees je peux supposer que vous n'êtes pas vraiment sûr si le KeyDown est câblé. Avez-vous le code suivant dans le fichier XAML?

<TextBox Height="32" HorizontalAlignment="Left" Margin="13,-2,0,0" Name="textBox1" Text="" VerticalAlignment="Top" Width="433" KeyDown="textBox1_KeyDown" /> 

Lacey interceptant Entrez @ Matt à partir du clavier du PC fonctionne également

0

On dirait que vous avez besoin pour gérer au lieu de l'événement KeyUp.