Как найти определенную позицию выбранного элемента в списке, чтобы включить кнопки в C #? - PullRequest
0 голосов
/ 01 июня 2009

У меня есть список с такими элементами, как A B C D E .
У меня также есть две кнопки Переместить вверх и Переместить вниз с ним.
Я уже сделал их свойства ложными в окне свойств (F4).

Когда пользователь выбирает B или все элементы ниже, моя кнопка «Вверх» должна быть активирована. Должно быть отключено для предмета

Точно так же моя кнопка «Вниз» должна быть включена, когда пользователь выбирает D или все элементы над ним. Должен быть отключен для E.

Можете ли вы предоставить мне правильную часть кода, которая будет написана здесь.

Спасибо ....

Ответы [ 3 ]

0 голосов
/ 01 июня 2009

Вот код, который я использую в listBox_SelectedIndexChanged:

this.moveUp.Enabled = this.listBox.SelectedIndex > 0;
this.moveDown.Enabled = this.listBox.SelectedIndex > -1 && listBox.SelectedIndex < listBox.Items.Count - 1;

На самом деле это метод, вызываемый оттуда, как код, вызываемый, когда диалог также инициализируется.

0 голосов
/ 01 июня 2009

Я делаю похожую вещь в своем приложении. Он также обрабатывает выбор нескольких элементов, а также проверяет, являются ли выбранные элементы непрерывными или нет.

Вот код:

private bool SelectionIsContiguous(ListBox lb)
{
    for (int i = 0; i < lb.SelectedIndices.Count - 1; i++)
        if (lb.SelectedIndices[i] < lb.SelectedIndices[i + 1] - 1)
            return false;

    return true;
}

private void SetMoveButtonStates()
{
    if (this.listBox.SelectedIndices.Count > 0)
    {
        if (this.listBox.SelectedIndices.Count > 1 && !SelectionIsContiguous(this.listBox))
        {
            this.btnMoveUp.Enabled = false;
            this.btnMoveDown.Enabled = false;
            return;
        }

        int firstSelectedIndex = this.listBox.SelectedIndices[0];
        this.btnMoveUp.Enabled = firstSelectedIndex == 0 ? false : true;

        int lastIndex = this.listBox.Items.Count - 1;
        int lastSelectedIndex = this.listBox.SelectedIndices[this.listBox.SelectedIndices.Count - 1];
        this.btnMoveDown.Enabled = lastSelectedIndex == lastIndex ? false : true;
    }
}
0 голосов
/ 01 июня 2009

Обрабатывать событие SelectedIndexChanged объекта ListBox. Если SelectedIndex больше 0, включите «двигаться вверх». Если он меньше, чем count - 1, включите «движение вниз»

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