focusowanie obiektu

0

Dzień dobry,
Piszę program edytorski w Visual Studio, Windows Form Application, C#. Program ma dawać możliwość wpisywania także liter pochodzących z różnych alfabetów, w tym celu zastosowałem buttony, które dodają odpowiednie litery do textBoxów. Chciałbym także, żeby po naciśnięciu odpowiedniego buttona, dodawała się literka, bez konieczności ponownego najechania kursorem na dany textBox. by nie było problemów z płynnością pisania. W tym punkcie mam problem, gdyż nie potrafię znaleźć odpowiedniej komendy do tego zadania. Próbowałem z Focus() i Select() natomiast teksty się zaznaczają na niebiesko, a po wywołaniu literki z klawiatury, cały tekst rzecz jasna się usunie. Proszę o pomoc.

 
 int i = 0;

        private void button1_Click(object sender, EventArgs e)
        {
            if (i == 0) MessageBox.Show("Nie wybrano obiektu");
            if (i == 1)
            {
                textBox1.Text = textBox1.Text + "Ä";
                textBox1.Focus();
            }
            if (i == 2)
            {
                textBox2.Text = textBox2.Text + "Ä";
                textBox2.Focus();
            }
        }

        private void Form1_Click(object sender, EventArgs e) //po kliknieciu w pusty obszar
        {
            i = 0;
        }
        private void textBox1_Click(object sender, EventArgs e) //po kliknieciu w textboxa 1
        {
            i = 1;
        }
        private void textBox2_Click(object sender, EventArgs e) // po kliknieciu w textboxa 2
        {
            i = 2;
        }

Program ma działać w taki sam sposób, za wyjątkiem zaznaczania tekstu na niebiesko, po kliknięciu buttona.
Pozdrawiam.

1
        textBox1 box=null; 

        private void button1_Click(object sender, EventArgs e)
        {
            if (box == null) MessageBox.Show("Nie wybrano obiektu");
            else
            {
                box.SelectedText:="Ä";
                int sel=box.SelectionStart;
                box.Focus();
                box.SelectionStart=sel;
                box.SelectionLength=0;
            }
        }
 
        private void Form1_Click(object sender, EventArgs e) //po kliknieciu w pusty obszar
        {
            box = null;
        }
        private void textBox1_Click(object sender, EventArgs e) //po kliknieciu w textboxa 1
        {
           box = textBox1;
        }
        private void textBox2_Click(object sender, EventArgs e) // po kliknieciu w textboxa 2
        {
           box = textBox2;
        }
0

Zamiast textBox1 na górze chyba ma być TextBox (jeśli ktoś będzie potrzebował). Dzięki wielkie! Działa właśnie tak jak chciałem :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1