0

テキストボックス配列があります

 _textBox = new TextBox[]
 { 
        textBox1, 
        textBox2,
        textBox3,
        textBox4,
        textBox5, 
        textBox6, 
        textBox7, 
        textBox8, 
        textBox9 
  };

このメソッドを使用して、キーストロークでこの配列を上下に移動します。

    private void textBox_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Down)
        {
            if (KeyIndex < RowsLimit - 1)
                ++KeyIndex;
            else
            {
                if (KeyIndex != 7)
                    paymntgrp.Visible = false;
                SaveBtn.Select();
                KeyIndex = 0;
                return;
            }
            _textBox[KeyIndex].SelectionStart = 0;
            _textBox[KeyIndex].SelectionLength = _textBox[KeyIndex].Text.Length;
            _textBox[KeyIndex].Select();
            if (KeyIndex != 7)
                paymntgrp.Visible = false;
            else
                paymntgrp.Visible = true;
        }
        else
        {
            if (e.KeyCode == Keys.Up)
            {
                if (KeyIndex > 0)
                    --KeyIndex;
                _textBox[KeyIndex].SelectionStart = 0;
                _textBox[KeyIndex].SelectionLength = _textBox[KeyIndex].Text.Length;
                _textBox[KeyIndex].Select();
                if (KeyIndex != 7)
                    paymntgrp.Visible = false;
                else
                    paymntgrp.Visible = true;
            }
        }
    }

しかし、テキストボックスのいずれかでマウスをランダムにクリックすると、キーインデックスは同じままで、元の場所から続行されます。

Keyindex をマウスの位置に設定するにはどうすればよいですか?

各テキストボックスの下に Keyindex = 0, Keyindex= 1 ... と書くべきですか? (ex のメソッド Mouse_Click の下)

または、より効果的な方法はありますか?

4

1 に答える 1