Как я могу ввести текст в конкретное текстовое поле, нажав кнопку - PullRequest
2 голосов
/ 03 декабря 2011

Я работаю над приложением WinForms.В моей форме четыре текстовых поля и одна кнопка.Я использую textBox1.SelectedText += "any string" при нажатии кнопки, чтобы он записывал в первый TextBox.Если я добавлю textBox1.SelectedText += "any string.", тогда будет записано как текстовое поле1, так и текстовое поле 2.

Когда я нажимаю текстовое поле 1 и нажимаю кнопку, то жало пишет только в первом текстовом поле, а я нажимаю второе текстовое поле и затем нажимаю кнопкуэто записать во второе текстовое поле. Есть ли способ сделать это?

Я использую следующий код.

private void button1_Click(object sender, EventArgs e)
{
    textBox1.SelectedText += "abc";
    textBox2.SelectedText += "abc";          
}

Когда я фокусируюсь на элементе управления, и когда мы нажимаемФокус кнопки переходит к кнопке.Итак, как мы можем сосредоточиться на одном из текстовых полей моей формы после нажатия кнопки?

Ответы [ 2 ]

2 голосов
/ 03 декабря 2011

Вы можете взять образец, как показано ниже, надеюсь, это даст вам музу.

 public partial class Form7 : Form
 {
    private TextBox textBox = null;
    public Form7()
    {
        InitializeComponent();

        // Binding to custom event process function GetF.
        this.textBox1.GotFocus += new EventHandler(GetF);
        this.textBox2.GotFocus += new EventHandler(GetF);
    }

    private void GetF(object sender, EventArgs e)
    {
        // Keeps you selecting textbox object reference.
        textBox = sender as TextBox;

    }

    private void button1_Click(object sender, EventArgs e)
    {
        // Changes you text box text.
        if (textbox != null) textBox.SelectedText += "You text";
    }
}
1 голос
/ 03 декабря 2011

Вы можете попробовать это

    TextBox selTB = null;

    public Form1()
    {
        InitializeComponent();
        textBox1.Enter += tb_Enter;
        textBox2.Enter += tb_Enter;
        textBox3.Enter += tb_Enter;
        textBox4.Enter += tb_Enter;
    }

    ~Form1()
    {
        textBox1.Enter -= tb_Enter;
        textBox2.Enter -= tb_Enter;
        textBox3.Enter -= tb_Enter;
        textBox4.Enter -= tb_Enter;
    }

    private void tb_Enter(object sender, EventArgs e)
    {
        selTB = (TextBox)sender;
    }


    private void button1_Click(object sender, EventArgs e)
    {
        // Do what you need
        selTB.SelectedText += "abc";

        // Focus last selected textbox
        if (selTB != null) selTB.Focus();
    }

Идея состоит в том, что когда вы вводите текстовое поле, вы сохраняете его в selTB.
Таким образом, когда вы нажимаете кнопку, вы знаете, какое текстовое поле былопоследний выбранный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...