при загрузке ставиш номер выбранного элемента 0, в событие изменения значения пишеш проверку, например если там 2 то у двух комбобоксов ставиш visible в true и т.д.
эм, не понял... можно пример...
я не про сами combobox, они все видиые должны быть.
я про списки в них, что если какой то элемент выбрали в каком то либо ComboBox, то этот элемент перестал отображаться в остальных ComboBox
в процессе возник такой глюк:
запускаешь 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
какой ужс. подумай, как весь этот код можно оптимизировать. фишка в том, что можно одной процедуре указать несколько хандлеров сразу. <subname> Handles <event1> [,<event2>,...]
можно не ругаться, я вообще радист, занимаюсь этим потому что интересно все же и хочется доработать наконец эту прогу...
сделал так:
PrivateSub ComboBox8_SelectionChangeCommitted(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox8.SelectionChangeCommitted
REM
Dim NumOfSelectedItem AsByte
NumOfSelectedItem = ComboBox8.SelectedIndex REM
If (ComboBox8.SelectedIndex <> 0) ThenREM
ComboBox9.Items.RemoveAt(NumOfSelectedItem)
ComboBox10.Items.RemoveAt(NumOfSelectedItem)
ComboBox11.Items.RemoveAt(NumOfSelectedItem)
Form2.Height = Form2.Height + 30
EndIfREM
EndSub
PrivateSub ComboBox9_SelectionChangeCommitted(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox9.SelectionChangeCommitted
REM
Dim NumOfSelectedItem AsByte
NumOfSelectedItem = ComboBox9.SelectedIndex REM
If (ComboBox9.SelectedIndex <> 0) ThenREM
ComboBox10.Items.RemoveAt(NumOfSelectedItem)
ComboBox11.Items.RemoveAt(NumOfSelectedItem)
Form2.Height = Form2.Height + 30
EndIfREM
EndSub
PrivateSub ComboBox10_SelectionChangeCommitted(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox10.SelectionChangeCommitted
REM
Dim NumOfSelectedItem AsByte
NumOfSelectedItem = ComboBox10.SelectedIndex REM
If (ComboBox10.SelectedIndex <> 0) ThenREM
ComboBox11.Items.RemoveAt(NumOfSelectedItem)
Form2.Height = Form2.Height + 30
EndIfREM
EndSub
PrivateSub ComboBox11_SelectionChangeCommitted(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox11.SelectionChangeCommitted
REM
Dim NumOfSelectedItem AsByte
NumOfSelectedItem = ComboBox11.SelectedIndex REM
If (ComboBox11.SelectedIndex <> 0) ThenREM
Form2.Height = Form2.Height + 30
EndIfREM
EndSub
работает в принципе хорошо.... но только первый раз...
по второму заходу выдает ошибку.. или например тут же чтобы исправить элементы...
вероятно из-за того что выбор второй раз не работает видимо потому что удаление происходит со сдвигом, удаляя третий элемент, 4етвертый элемент становиться опять третим...
элементов везде 5:
0 - не показывать
1 - значение 1
2 - значение 2
3 - значение 3
4 - значение 4
и везде одинаковое...
как сделать чтобы также работало и после первого раза...