Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / 2а ListBox'a. Как снять выделение Item'a ? / 14 сообщений из 14, страница 1 из 1
25.01.2005, 15:57
    #32882750
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2а ListBox'a. Как снять выделение Item'a ?
На форме 2а листбокса с элементами. в обоих можно выбирать только один элемент.
При выборе элемента он подсвечивается(выделяется) синим цветом.
Хочется видеть на экране подсветку только в том листбоксе в котором я в данный момент нахожусь.

Первая мысль была записать в обр. события SelectedIndexChanged чего-нить что убирает выделение с другого листбокса.

НО вот ЧТО конкретно? Как это сделать?

-------------------------------------------------------------------------
Нет худа без добра, да и добро без худа - чудо.
...
Рейтинг: 0 / 0
25.01.2005, 16:15
    #32882804
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2а ListBox'a. Как снять выделение Item'a ?
в листвью есть замечательное свойство - HideSelection, в боксе его почемуто нет, подписываться думаю на событие получения фокуса, и выставлять для другого бокса Index = -1, если так можна конечно, но нужно запоминать текущую позицию, что б при получении фокуса ее возобновлять...
...
Рейтинг: 0 / 0
25.01.2005, 16:18
    #32882816
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2а ListBox'a. Как снять выделение Item'a ?
Лиман Артёмв листвью есть замечательное свойство - HideSelection, в боксе его почемуто нет, подписываться думаю на событие получения фокуса, и выставлять для другого бокса Index = -1, если так можна конечно, но нужно запоминать текущую позицию, что б при получении фокуса ее возобновлять...

Index = -1 Почему-то криво работает. Через раз выкидывает сообщение о выходе за пределы массива, а иногда и правда убирает выделение.... Странно и использовать это в таком виде конечно нельзя.
...
Рейтинг: 0 / 0
25.01.2005, 16:25
    #32882834
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2а ListBox'a. Как снять выделение Item'a ?
вот кусок реализации SelectedIndex
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
public override int SelectedIndex
{
      get
      {
            ...
      }
      set
      {
            int num1 = (this.itemsCollection == null) ? 0 : this.itemsCollection.Count;
            if ((value < -1) || (value >= num1))
            {
                  object[] objArray1 = new object[2] { "value", value.ToString() } ;
                  throw new ArgumentOutOfRangeException(SR.GetString("InvalidArgument", objArray1));
            }
            ......
            if ((this.selectionMode == SelectionMode.One) && (value != -1))
            {
                  .......
            }
            else if (value == -1)
            {
                  if (this.SelectedIndex == -1)
                  {
                        return;
                  }
                  this.ClearSelected();
            }
            else
            {
                  ....
            }
      }

тоесть ошибок впринципе не должно быть, ну а если так не устраивает, то можна вызвать ClearSelected, благо он паблик
...
Рейтинг: 0 / 0
25.01.2005, 16:38
    #32882877
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2а ListBox'a. Как снять выделение Item'a ?
Лиман Артёмвот кусок реализации SelectedIndex
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
public override int SelectedIndex
{
      get
      {
            ...
      }
      set
      {
            int num1 = (this.itemsCollection == null) ? 0 : this.itemsCollection.Count;
            if ((value < -1) || (value >= num1))
            {
                  object[] objArray1 = new object[2] { "value", value.ToString() } ;
                  throw new ArgumentOutOfRangeException(SR.GetString("InvalidArgument", objArray1));
            }
            ......
            if ((this.selectionMode == SelectionMode.One) && (value != -1))
            {
                  .......
            }
            else if (value == -1)
            {
                  if (this.SelectedIndex == -1)
                  {
                        return;
                  }
                  this.ClearSelected();
            }
            else
            {
                  ....
            }
      }

тоесть ошибок впринципе не должно быть, ну а если так не устраивает, то можна вызвать ClearSelected, благо он паблик

ClearSelected(); Так же работает через раз. Непонятно.
...
Рейтинг: 0 / 0
25.01.2005, 16:40
    #32882882
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2а ListBox'a. Как снять выделение Item'a ?
а SelectionMode какой?
...
Рейтинг: 0 / 0
25.01.2005, 16:45
    #32882897
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2а ListBox'a. Как снять выделение Item'a ?
Лиман Артёма SelectionMode какой?


SelectionMode = One
Перый раз событие SelectedIndexChanged отрабатывает нормально удаляя выделение,
затем я снова в боксе1 выделяю итем и снова ухожу на бокс2 и вот тут уже ничего не происходит.

private void listBox1_Leave(object sender, System.EventArgs e)
{
this.listBox1.ClearSelected();
}

тоже не помогает... :(
...
Рейтинг: 0 / 0
25.01.2005, 17:04
    #32882969
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2а ListBox'a. Как снять выделение Item'a ?
видать придется всетаки разбираться серьезно...
...
Рейтинг: 0 / 0
25.01.2005, 17:16
    #32883010
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2а ListBox'a. Как снять выделение Item'a ?
блин прекрасно все работает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 Private Sub ListBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.GotFocus, ListBox2.GotFocus
        If sender Is ListBox1 Then
            ListBox2.ClearSelected()
        Else
            ListBox1.ClearSelected()
        End If

    End Sub
...
Рейтинг: 0 / 0
25.01.2005, 18:11
    #32883157
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2а ListBox'a. Как снять выделение Item'a ?
Лиман Артёмблин прекрасно все работает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 Private Sub ListBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.GotFocus, ListBox2.GotFocus
        If sender Is ListBox1 Then
            ListBox2.ClearSelected()
        Else
            ListBox1.ClearSelected()
        End If

    End Sub



На C# написал:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
this.listBox1.GotFocus +=new EventHandler(listBox1_GotFocus);
this.listBox2.GotFocus +=new EventHandler(listBox2_GotFocus);

private void listBox1_GotFocus(object sender, EventArgs e)
		{
			this.listBox2.ClearSelected();
		}

		private void listBox2_GotFocus(object sender, EventArgs e)
		{
			this.listBox1.ClearSelected();
		}

НЕ РАБОТАЕТ !
...
Рейтинг: 0 / 0
25.01.2005, 18:18
    #32883172
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2а ListBox'a. Как снять выделение Item'a ?
хорошо счас в c# напишу проэкт и выложу...
...
Рейтинг: 0 / 0
25.01.2005, 18:26
    #32883194
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2а ListBox'a. Как снять выделение Item'a ?
ну вот, как я и думал все работает...может я вообще вопрос не так понял...
вот проэкт - прежде чем скомпилить у себя открой мое ехешник
...
Рейтинг: 0 / 0
26.01.2005, 12:53
    #32884395
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2а ListBox'a. Как снять выделение Item'a ?
2М234, ну че, работает?
...
Рейтинг: 0 / 0
26.01.2005, 22:52
    #32885859
2а ListBox'a. Как снять выделение Item'a ?
Лиман Артём2М234, ну че, работает?

M234
Мистика. У меня прога с идентичным кодом не работает.
Ваш пример работает. Чёрти-что. Попробую ещё раз такую же прогу с нуля написать. В любом случае странно. (Пожатие плечами).
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / 2а ListBox'a. Как снять выделение Item'a ? / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]