2017-02-09 20 views
1

У меня есть небольшое приложение, и я хочу писать текст в разных текстовых окнах с помощью кнопок. Это мой код, но нажмите кнопку не писать текст в текст. Пожалуйста, посоветуйте мне.Как писать буквы с помощью кнопок в различных текстовых окнах?

Что я должен изменить ?. В блокноте все работает, но не в текстовых блоках.

enter image description here

public partial class Form1 : Form 
{ 

    protected override CreateParams CreateParams 
    { 
     get 
     { 
      CreateParams param = base.CreateParams; 
      param.ExStyle |= 0x08000000; 
      return param; 
     } 
    } 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     { 
      SendKeys.Send("A"); 
     } 
    } 

    private void button3_Click(object sender, EventArgs e) 
    { 
     { 
      SendKeys.Send("B"); 
     } 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     { 
      SendKeys.Send("C"); 
     } 
    } 

    private void button4_Click(object sender, EventArgs e) 
    { 
     { 
      SendKeys.Send("D"); 
     } 
    } 
} 

}

+0

Он работает при записи в блокнот, потому что есть только один (большой) TextBox для записи. Вам нужно будет указать, какой TextBox вы намереваетесь написать, когда будете нацелены на вашу форму. – Filburt

+0

Можете ли вы дать более подробную информацию о своем проекте? Является ли это WPF или APP для Windows или вы используете Xamarin для лечения кросс-палформ? –

+0

@Filburt У меня есть больше текстовых полей и как их обнаружить? –

ответ

2

Может быть, вы должны сделать что-то вроде этого

private void button3_Click(object sender, EventArgs e) 
{ 
    //SendKeys.Send("B"); 
    txtBox.Text += "B"; 
} 

Но так как вы не знаете, какой ящик текст для редактирования, вам нужно ввести переменную

private TextBox _currTextBox; 

// wire all text boxes to this "enter" event 
private void txtBox_Enter(object sender, EventArgs e) 
{ 
    _currTextBox = (TextBox)sender; 
} 
// and accordingly 

private void button3_Click(object sender, EventArgs e) 
{ 
    _currTextBox.Text += "B"; 
} 
+0

Это только для одного текстового поля, мне это нужно для всех текстовых полей, где находится фокус. –

+1

@ matus.kasper read watchlty - это для ВСЕХ текстовых полей. Когда вы вводите один - вы выбираете его как текущий –

+0

Super, большое спасибо –