2010-11-22 1 views
0

J'ai deux zone de texte quand j'appuie sur un texte de bouton de la zone de texte on peut automatiquement afficher sur textbox2. i utilisé VS 2010 je besoin de ce code C#comment puis-je obtenir une valeur à l'autre sur l'utilisateur cliquez sur?

+6

On dirait que quelqu'un essaie de faire ses devoirs pour lui. ;) – Yoopergeek

+0

peut-être un peu de javascript ... –

+0

si vous le faites dans WPF en utilisant la liaison, vous n'avez même pas besoin d'un bouton. – ihatemash

Répondre

2

sur le bouton événement click écrire cette ligne:

textbox2.Text = textbox.Text; 

PS. essayez de lire un livre comme C# pour les nuls

3

Dans le cas de clic du bouton:

Textbox2.Text = Textbox1.Text

2

Si vous voulez la valeur pour changer comme vous le taper, consultez l'événement KeyPress

textbox1.KeyPress += new KeyPressEventHandler(KeyPressedEvent); 

private void KeyPressedEvent(Object o, KeyPressEventArgs e) 
{ 
    textbox2.Text = textbox1.Text; 
} 
+0

où j'écris votre première ligne de code –

+0

@Gulu - Vous et assignez-le dans le concepteur. Cliquez simplement sur la zone de texte1 et sélectionnez le boulon lightnigh sur la page Propriétés. Ensuite, faites défiler jusqu'à ce que vous voyez «KeyPress» et entrez dans «KeyPressedEvent». Cela l'ajoutera au fichier designer.cs. – SwDevMan81

2
TextBox tb1 = new TextBox(); 
    TextBox tb2 = new TextBox(); 
    public Form1() 
    { 
     InitializeComponent(); 
     tb1.Top = 100; 
     tb2.Top = 100 + tb1.Height; 
     tb1.TextChanged += new EventHandler(tb1_TextChanged); 
     this.Controls.Add(tb1); 
     this.Controls.Add(tb2); 
    } 


    void tb1_TextChanged(object sender, EventArgs e) 
    { 
     tb2.Text = tb1.Text; 
    } 
1

Vous pouvez le faire sans utiliser codebehind tels que TextBox2.Text = TextBox1.Text; et sans bouton. Vous pouvez tout faire en XAML avec une seule propriété dans votre code C#.

votre code C# (alias ViewModel)

private string _textBoxContent; 
public string TextBoxContent 
{ 
    get { return _textBoxContent; } 
    set 
    { 
     _textBoxContent = value; 
     OnPropertyChanged("TextBoxContent"); 
    } 
} 

et votre XAML ressemblera à ceci:

<TextBox Name="tb1" Text="{Binding TextBoxContent, UpdateSourceTrigger=PropertyChanged}"/> 
<TextBox Name="tb2" Text="{Binding TextBoxContent, Mode=OneWay}"/> 

Cela entraînera des changements à TB1 à afficher dans TB2 que vous tapez TB1. Cependant, il ne changera pas la valeur de tb1 lorsque vous tapez tb2.

Pour que tb1 et tb2 se mettent à jour l'un l'autre, utilisez simplement la même instruction de liaison de tb1.

+0

Si vous n'ajoutez pas UpdateSourceTrigger = PropertyChanged à l'instruction de liaison, vous devez quitter la zone de texte avant de mettre à jour la valeur de l'autre zone de texte. – ihatemash

Questions connexes