Проблема с UserControl

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

raserg
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 24.01.2009 (Сб) 0:35
Откуда: Одесса

Проблема с UserControl

Сообщение raserg » 24.12.2011 (Сб) 11:12

Доброго времени суток.
Имеется UserControl
Изображение
при проверке у ComboBox какой у него SelectedIndex
(упрощенный вариант функции)
Код: Выделить всё
   Function N_col(ByVal k As Integer)

        Dim sssl As String = ""
        For Each combo In Me.Controls       
            If combo.GetType.FullName = "System.Windows.Forms.ComboBox" Then
                sssl &= " k=  " & k & ":  combo.tag = " & combo.tag & ":   combo.Name = " & combo.Name &  _
": combo.SelectedIndex " & combo.SelectedIndex & vbCrLf
            End If

        Next
    End Function

У меня на ХР работает отлично
k= 52: combo.tag = 11: combo.Name = ComboBox1: combo.SelectedIndex 1
k= 52: combo.tag = 12: combo.Name = ComboBox2: combo.SelectedIndex 2
k= 52: combo.tag = 22: combo.Name = ComboBox3: combo.SelectedIndex 3
k= 52: combo.tag = 21: combo.Name = ComboBox4: combo.SelectedIndex 2
k= 52: combo.tag = 32: combo.Name = ComboBox5: combo.SelectedIndex 4
k= 52: combo.tag = 31: combo.Name = ComboBox6: combo.SelectedIndex 3
k= 52: combo.tag = 42: combo.Name = ComboBox7: combo.SelectedIndex 5
k= 52: combo.tag = 41: combo.Name = ComboBox8: combo.SelectedIndex 4
k= 52: combo.tag = 52: combo.Name = ComboBox9: combo.SelectedIndex 6


У клиента
на W7 выдача индекса только по первой паре

k= 52: combo.tag = 11: combo.Name = ComboBox1: combo.SelectedIndex 1
k= 52: combo.tag = 12: combo.Name = ComboBox2: combo.SelectedIndex 2
k= 52: combo.tag = 22: combo.Name = ComboBox3: combo.SelectedIndex -1
k= 52: combo.tag = 21: combo.Name = ComboBox4: combo.SelectedIndex -1
k= 52: combo.tag = 32: combo.Name = ComboBox5: combo.SelectedIndex -1
k= 52: combo.tag = 31: combo.Name = ComboBox6: combo.SelectedIndex -1
k= 52: combo.tag = 42: combo.Name = ComboBox7: combo.SelectedIndex -1
k= 52: combo.tag = 41: combo.Name = ComboBox8: combo.SelectedIndex -1
k= 52: combo.tag = 52: combo.Name = ComboBox9: combo.SelectedIndex -1


В чем может быть причина такого поведения?

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Проблема с UserControl

Сообщение FireFenix » 24.12.2011 (Сб) 11:32

Код: Выделить всё
    Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        Me.ComboBox1.Items.Add("1")
        Me.ComboBox1.Items.Add("2")
        Me.ComboBox1.Items.Add("3")
        Me.ComboBox1.Items.Add("4")
        Me.ComboBox1.Items.Add("5")

        Console.WriteLine("SelectedIndexChanged = " & Me.ComboBox1.SelectedItem & " (" & Me.ComboBox1.SelectedIndex & ")")
    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        Console.WriteLine("SelectedIndexChanged = " & Me.ComboBox1.SelectedItem & " (" & Me.ComboBox1.SelectedIndex & ")")
    End Sub


Вывод:
Код: Выделить всё
SelectedIndexChanged =  (-1)
SelectedIndexChanged = 1 (0)
SelectedIndexChanged = 2 (1)
SelectedIndexChanged = 3 (2)
SelectedIndexChanged = 4 (3)
SelectedIndexChanged = 5 (4)


Всё пашет => ошибка в коде или работы логики

В MSDN ещё написано:
Индекс текущего выделенного элемента (индексация ведется с нуля). Если элемент не выбран, возвращается отрицательное значение (-1).

Если FormattingEnabled имеет значение true, для объекта SelectedIndex будет установлено значение -1, когда объект SelectedValue пуст.

Или может клиент вводит текст, а не выбирает элемент?
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

raserg
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 24.01.2009 (Сб) 0:35
Откуда: Одесса

Re: Проблема с UserControl

Сообщение raserg » 24.12.2011 (Сб) 12:40

На ХР то работает верно,проверял клиент,ему на W7 надо запустить
комбобоксы заполнены данными.
Клиент выбирает соответствующие значения во всех комбобоксах
на W7-не хочет работать правильно,такое складывается впечатление,что как бы он их не выбирает.
Но я же через скайп вижу все его манипуляции.
Не пойму почему первая пара работает правильно.
Он ее первой устанавливает.
Может быть освежать их combo.Refresh()

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Проблема с UserControl

Сообщение FireFenix » 24.12.2011 (Сб) 13:01

raserg писал(а):Клиент выбирает соответствующие значения во всех комбобоксах
на W7-не хочет работать правильно,такое складывается впечатление,что как бы он их не выбирает.

Я тебе дал код. Под моей W7 и под всеми версиями FW работает как я отписал.
Выложи свой проект или минимальную рабочую его часть - можно будет выяснить что/куда
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

raserg
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 24.01.2009 (Сб) 0:35
Откуда: Одесса

Re: Проблема с UserControl

Сообщение raserg » 24.12.2011 (Сб) 13:03

спасиба.
сегодня проверю у клиента,если не пойдет,выложу код


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 36

    TopList