Как использовать кнопки для управления фокусировкой других кнопок? - PullRequest
0 голосов
/ 11 марта 2019

Я хочу использовать следующие четыре кнопки со стрелками для управления фокусировкой вышеупомянутых девяти кнопок, но после поиска эта проблема не решена, поэтому я перехожу к stackoverflow и надеюсь получить ответ.

Спасибо за ваши ответы.Простите, что я новичок в C #.

enter image description here

Ответы [ 2 ]

0 голосов
/ 11 марта 2019
private Button[,] btns = new Button[3,3] {
                           {button1,button2,button3},
                           {buttonQ,buttonW,buttonE},
                           {buttonA,buttonS,buttonD}};
private int x=0, y=0;

private void buttonLeft_Click(object sender, EventArgs e)
{
    if(y>0)
    {
        y--;
        btns[x,y].Focus();
    }
}

private void buttonRight_Click(object sender, EventArgs e)
{
    if(y<3)
    {
        y++;
        btns[x,y].Focus();
    }
}

private void buttonUp_Click(object sender, EventArgs e)
{
    if(x>0)
    {
        x--;
        btns[x,y].Focus();
    }
}

private void buttonDown_Click(object sender, EventArgs e)
{
    if(x<3)
    {
        x++;
        btns[x,y].Focus();
    }
}
0 голосов
/ 11 марта 2019

Вы можете сохранить кнопки (1/2/3 ... A / S / D) в двумерном массиве.Кнопка [3,3].Затем установите значение по умолчанию «Точка» 0,0 («Точка» - это структура, имеющая 2 int для определения местоположения).

Вверх / вниз нажмите Уменьшить / увеличить координату Y (определите, хотите ли вы использовать Pac-Man).. т.е. нажатие вниз от самой нижней позиции приводит к самому верхнему положению и т. д.)

В левом / правом клике Уменьшить / увеличить координату X.

После каждого щелчка - выберите кнопку из коллекции кнопок, как:

ButtonStore [Point.X, Point.Y]

и затем вызовите установленный фокус.(Вероятно, Control.Focus () или что-то).

...