Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Небольшой финт ушами с несколькими ComboBox Добавлено: 06.02.11 01:00  

Автор вопроса:  QweЯty
есть 4ре ComboBox в которых одинаковые значения:
0 - не показывать
1 - значение 1
2 - значение 2
3 - значение 3
4 - значение 4

1. как сделать так, чтобы когда в ComboBox выбрали какой то элемент(кроме 0) он перестал отображаться в других ComboBox

2. как сделать так, чтобы по дефолту шло значение 0?

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 Захарка



Вопросов: 0
Ответов: 42
 Профиль | | #1 Добавлено: 06.02.11 01:11
при загрузке ставиш номер выбранного элемента 0, в событие изменения значения пишеш проверку, например если там 2 то у двух комбобоксов ставиш visible в true и т.д.

Ответить

Номер ответа: 2
Автор ответа:
 QweЯty



Вопросов: 7
Ответов: 12
 Профиль | | #2 Добавлено: 06.02.11 01:20
эм, не понял... можно пример...
я не про сами combobox, они все видиые должны быть.
я про списки в них, что если какой то элемент выбрали в каком то либо ComboBox, то этот элемент перестал отображаться в остальных ComboBox

Ответить

Номер ответа: 3
Автор ответа:
 QweЯty



Вопросов: 7
Ответов: 12
 Профиль | | #3 Добавлено: 06.02.11 03:19
в процессе возник такой глюк:
запускаешь 1й раз все работает на ура, все настройки применяются.

открываешь заново настройки, изменяшь.. хоть бы хны... как горох об стенку, ничего не изменяет...
если закрыть и снова открыть то снова 1й раз работает, второй раз - шишь...

пока вот такая конструкция:


[/code]

    Private Sub ButOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButOK.Click
        If WindOfTemp.Checked = True Then
            If ShowAllWind.Checked Then
                Form2.TopMost = True
            Else
                Form2.TopMost = False
            End If
            Me.WindowState = FormWindowState.Minimized
            Me.ShowInTaskbar = False
            Form2.Opacity = F2OpWin
            Form2.Show()
        Else
            Form2.Hide()
            Me.WindowState = FormWindowState.Minimized
            Me.ShowInTaskbar = False
        End If
    End Sub


    Private Sub ComboBox8_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox8.SelectedIndexChanged
        'Me.ComboBox8.SelectedIndex = 0
        If Me.ComboBox8.SelectedIndex = 0 Then
            Form2.Height = 61
        End If
        ' ...
        If Me.ComboBox8.SelectedIndex <> 0 Then
            Form2.Height = Form2.Height + 50
        End If
    End Sub

    Private Sub ComboBox9_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox9.SelectedIndexChanged
        'Me.ComboBox9.SelectedIndex = 0
        If Me.ComboBox9.SelectedIndex = 0 Then
            Form2.Height = 61
        End If
        ' ...
        If Me.ComboBox9.SelectedIndex <> 0 Then
            Form2.Height = Form2.Height + 50
        End If
    End Sub
    Private Sub ComboBox10_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox10.SelectedIndexChanged
        'Me.ComboBox10.SelectedIndex = 0
        If Me.ComboBox10.SelectedIndex = 0 Then
            Form2.Height = 61
        End If
        ' ...
        If Me.ComboBox10.SelectedIndex <> 0 Then
            Form2.Height = Form2.Height + 50
        End If
    End Sub
    Private Sub ComboBox11_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox11.SelectedIndexChanged
        'Me.ComboBox11.SelectedIndex = 0
        If Me.ComboBox11.SelectedIndex = 0 Then
            Form2.Height = 61
        End If
        ' ...
        If Me.ComboBox11.SelectedIndex <> 0 Then
            Form2.Height = Form2.Height + 50
        End If
    End Sub



[/code]

Ответить

Номер ответа: 4
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #4 Добавлено: 06.02.11 14:37
какой ужс. подумай, как весь этот код можно оптимизировать. фишка в том, что можно одной процедуре указать несколько хандлеров сразу. <subname> Handles <event1> [,<event2>,...]

Ответить

Номер ответа: 5
Автор ответа:
 iprog



Вопросов: 26
Ответов: 110
 Web-сайт: usprogs.atheo-club.ru
 Профиль | | #5
Добавлено: 06.02.11 18:42
AgentFire, перестань, наконец, совать всем под нос свой дотнет! Человек помощи просит!

Ответить

Номер ответа: 6
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #6 Добавлено: 06.02.11 19:22
Илья, если ты разуешь глаза, то увидишь, что его код и есть код дотнета

Ответить

Номер ответа: 7
Автор ответа:
 QweЯty



Вопросов: 7
Ответов: 12
 Профиль | | #7 Добавлено: 06.02.11 20:11
можно не ругаться, я вообще радист, занимаюсь этим потому что интересно все же и хочется доработать наконец эту прогу...

сделал так:

  1.  
  2.     Private Sub ComboBox8_SelectionChangeCommitted(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox8.SelectionChangeCommitted
  3.         REM
  4.         Dim NumOfSelectedItem As Byte
  5.         NumOfSelectedItem = ComboBox8.SelectedIndex REM
  6.  
  7.         If (ComboBox8.SelectedIndex <> 0) Then REM
  8.             ComboBox9.Items.RemoveAt(NumOfSelectedItem)
  9.             ComboBox10.Items.RemoveAt(NumOfSelectedItem)
  10.             ComboBox11.Items.RemoveAt(NumOfSelectedItem)
  11.             Form2.Height = Form2.Height + 30
  12.         End If REM
  13.     End Sub
  14.  
  15.     Private Sub ComboBox9_SelectionChangeCommitted(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox9.SelectionChangeCommitted
  16.         REM
  17.         Dim NumOfSelectedItem As Byte
  18.         NumOfSelectedItem = ComboBox9.SelectedIndex REM
  19.  
  20.         If (ComboBox9.SelectedIndex <> 0) Then REM
  21.             ComboBox10.Items.RemoveAt(NumOfSelectedItem)
  22.             ComboBox11.Items.RemoveAt(NumOfSelectedItem)
  23.             Form2.Height = Form2.Height + 30
  24.         End If REM
  25.     End Sub
  26.  
  27.     Private Sub ComboBox10_SelectionChangeCommitted(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox10.SelectionChangeCommitted
  28.         REM
  29.         Dim NumOfSelectedItem As Byte
  30.         NumOfSelectedItem = ComboBox10.SelectedIndex REM
  31.  
  32.         If (ComboBox10.SelectedIndex <> 0) Then REM
  33.             ComboBox11.Items.RemoveAt(NumOfSelectedItem)
  34.             Form2.Height = Form2.Height + 30
  35.         End If REM
  36.     End Sub
  37.  
  38.     Private Sub ComboBox11_SelectionChangeCommitted(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox11.SelectionChangeCommitted
  39.         REM
  40.         Dim NumOfSelectedItem As Byte
  41.         NumOfSelectedItem = ComboBox11.SelectedIndex REM
  42.  
  43.         If (ComboBox11.SelectedIndex <> 0) Then REM
  44.             Form2.Height = Form2.Height + 30
  45.         End If REM
  46.     End Sub


работает в принципе хорошо.... но только первый раз...

по второму заходу выдает ошибку.. или например тут же чтобы исправить элементы...
вероятно из-за того что выбор второй раз не работает видимо потому что удаление происходит со сдвигом, удаляя третий элемент, 4етвертый элемент становиться опять третим...

элементов везде 5:
0 - не показывать
1 - значение 1
2 - значение 2
3 - значение 3
4 - значение 4
и везде одинаковое...

как сделать чтобы также работало и после первого раза...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам