2015-03-02 2 views
0

Как сделать автоматическое заполнение текстового поля на основе ввода из двух других текстовых полей?Как автоматически заполнить текстовые поля в C#?

Например:

Имя: Джон

Lastname: Smith

Alias: JSmit (Берет первый начальный и первые 4 буквы в LastName)

Ник: JSmith (Берет первый initial, + Lastname)

Как я могу написать это на C#? это форма Windows на Visual Studio 2013

Я думаю, что для Nickname я могу просто использовать txtNickname.text = * Some wierd A^@ #% @ Thing * + txtLastname.Text;

ответ

0
txtNickname.Text = txtFirstName.Text[0] + txtLastName.Text; 
txtAlias.Text = txtFirstName.Text[0] + txtLastName.Text.Substring(0, 4); 

Вы может нужно добавить некоторые атрибуты для длины строки. :)

+0

Это прекрасно работает. Мой единственный вопрос: как я могу заставить текстовые поля отображать псевдоним и псевдоним, как они набираются? – JT082014

+0

вы можете сделать что-то похожее на то, что предлагает @Binkan Salaryman. или вы можете использовать событие с измененным текстом текстовых полей txtFirstName и txtLastName. знаете ли вы, как их использовать? Если нет, я могу прокомментировать это здесь –

0

Вы пытаетесь внедрить привязки данных в Windows Forms - вы можете взглянуть на this Tutorial. В качестве альтернативы вы можете легко сделать это с WPF

Вот некоторые примеры кода WPF-стиль для Windows Forms:

public partial class Form1 : Form, INotifyPropertyChanged { 
    public string FirstName { get { return txtFirstName.Text; } set { txtFirstName.Text = value; } } 
    public string LastName { get { return txtLastName.Text; } set { txtLastName.Text = value; } } 
    public string NickName { get { return txtNickName.Text; } set { txtNickName.Text = value; } } 

    public Form1() { 
     InitializeComponent(); 
     UpdateNickName(); 
     txtFirstName.TextChanged += (s, e) => FirePropertyChanged("FirstName"); 
     txtLastName.TextChanged += (s, e) => FirePropertyChanged("LastName"); 
     txtNickName.TextChanged += (s, e) => FirePropertyChanged("NickName"); 
     PropertyChanged += Form1_PropertyChanged; 
    } 

    void Form1_PropertyChanged(object sender, PropertyChangedEventArgs e) { 
     switch(e.PropertyName) { 
      case "FirstName": 
      case "LastName": 
       UpdateNickName(); 
       break; 
     } 
    } 

    void UpdateNickName() { 
     if(FirstName.Length > 1 && LastName.Length > 4) { 
      NickName = FirstName.Substring(0, 1) + "" + LastName.Substring(0, 4); 
     } else { 
      NickName = ""; 
     } 
    } 

    public void FirePropertyChanged([CallerMemberName] string property = "") { 
     if(PropertyChanged != null) { 
      PropertyChanged(this, new PropertyChangedEventArgs(property)); 
     } 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 
} 
Смежные вопросы