Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 | 2 |

 

  Вопрос: Вопос по ComboBox Добавлено: 23.03.08 13:04  

Автор вопроса:  Ig0r
Здраствуйте!Помогите,нужно сделать 3 Combobox'a с помощью ComboBox 1-список это число,2-список это месяц, 3- список это год!Можно ли заполнять ComboBox(например число) не с помощью AddItem "1" и т.д.,чтобы код был меньше?И как сделать чтобы там при запуске стояла текущая дата?

Ответить

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

Номер ответа: 1
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #1
Добавлено: 23.03.08 13:30
кидаешь на форму три комбика: cboDay, cboMonth, cboYear

Private Sub Form_Load()
    Dim i
    Const SE = 1950
    For i = 1 To 100
        If i < 13 Then cboMonth.AddItem i
        If i = Month(Date$) Then cboMonth.ListIndex = i - 1
        If i < 32 Then cboDay.AddItem i
        If i = Day(Date$) Then cboDay.ListIndex = i - 1
        cboYear.AddItem i + SE
        If i + SE = Year(Date$) Then cboYear.ListIndex = i - 1
    Next
End Sub

Ответить

Номер ответа: 2
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #2
Добавлено: 23.03.08 13:39
ListBox Control, List Property Example

The following example swaps columns of a multicolumn ListBox. The sample uses the List property in two ways:

To access and exchange individual values in the ListBox. In this usage, List has subscripts to designate the row and column of a specified value.


To initially load the ListBox with values from an array. In this usage, List has no subscripts.
To use this example, copy this sample code to the Declarations portion of a form. Make sure that the form contains a ListBox named ListBox1 and a CommandButton named CommandButton1.

Dim MyArray(6, 3)          
'Array containing column values for ListBox.

Private Sub UserForm_Initialize()
    Dim i As Single

    ListBox1.ColumnCount = 3        
'This list box contains 3 data columns

    'Load integer values MyArray
    For i = 0 To 5
        MyArray(i, 0) = i
        MyArray(i, 1) = Rnd
        MyArray(i, 2) = Rnd
    Next i

    'Load ListBox1
    ListBox1.List() = MyArray

End Sub
Private Sub CommandButton1_Click()
' Exchange contents of columns 1 and 3

    Dim i As Single
    Dim Temp As Single

    For i = 0 To 5
        Temp = ListBox1.List(i, 0)
        ListBox1.List(i, 0) = ListBox1.List(i, 2)
        ListBox1.List(i, 2) = Temp
    Next i
End Sub

Ответить

Номер ответа: 3
Автор ответа:
 Ig0r



Вопросов: 9
Ответов: 18
 Профиль | | #3 Добавлено: 23.03.08 14:24
Код писать в UserForm - initialize

Ответить

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



Вопросов: 9
Ответов: 18
 Профиль | | #4 Добавлено: 23.03.08 14:29
 Executioner - огромное спасибо!!!

Ответить

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



Вопросов: 9
Ответов: 18
 Профиль | | #5 Добавлено: 23.03.08 14:29
 Executioner - огромное спасибо!!!

Ответить

Номер ответа: 6
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #6
Добавлено: 23.03.08 15:06
    Пример я привёл из MSDN именно по вопросу установки значений ComboBox'а "сразу" через свой массив и свойство .List()
    Быстрее ли это обычным установкам — сильно сомневаюсь. :)

Ответить

Номер ответа: 7
Автор ответа:
 Ig0r



Вопросов: 9
Ответов: 18
 Профиль | | #7 Добавлено: 23.03.08 17:58
А как сделать чтобы месяц отображался не 1,2,3 а Январь,Февраль и т.д.?

Ответить

Номер ответа: 8
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #8
Добавлено: 24.03.08 00:46
    Dim i
    Const SE = 1950
    For i = 1 To 100
        If i < 13 Then cboMonth.AddItem MonthName(i)
        If i = Month(Date$) Then cboMonth.ListIndex = i - 1
        If i < 32 Then cboDay.AddItem i
        If i = Day(Date$) Then cboDay.ListIndex = i - 1
        cboYear.AddItem i + SE
        If i + SE = Year(Date$) Then cboYear.ListIndex = i - 1
    Next

Ответить

Номер ответа: 9
Автор ответа:
 night-roll



Вопросов: 36
Ответов: 326
 Профиль | | #9 Добавлено: 24.03.08 02:31
мной применялся такой пример (100% рабочий)
Private Sub UserForm_Initialize()
Dim i As Byte
    
    With ComboBox1 'часы
        For i = 1 To 24
            .AddItem i
        Next i
        .ListIndex = Hour(DateAdd("d", -1, Now)) - 1
    End With
    
    With ComboBox2 'дни месяца
        For i = 1 To 31
            .AddItem i
        Next i
        .ListIndex = Day(DateAdd("d", -1, Now)) - 1
    End With
     
    With ComboBox4 'года начиная с 2002-го года до текущего
        For i = 2 To Year(DateAdd("d", -1, Now)) - 2000
            .AddItem 2000 + i
        Next i
        .ListIndex = Year(DateAdd("d", -1, Now)) - 2002
    End With
    
    With ComboBox3
        .list = Array("января", "февраля", "марта", "апреля", "мая", "июня", "июля", _
                        "августа", "сентября", "октября", "ноября", "декабря";)
        .ListIndex = Month(DateAdd("d", -1, Now)) - 1
    End With

End Sub

Ответить

Номер ответа: 10
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #10
Добавлено: 24.03.08 11:29
night-roll, не великоват примерчик? Вроде, мой попроще будет =)

Ответить

Номер ответа: 11
Автор ответа:
 Ig0r



Вопросов: 9
Ответов: 18
 Профиль | | #11 Добавлено: 25.03.08 17:17
Есть набор из 4 страниц(Multipage) можно ли сделать чтобы число, месяц и год(comboBox)(ихний код находился на 1 странице),а на всех остальных вкладках тоже чтобы отображались эти значения без повторения кода?

Ответить

Номер ответа: 12
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #12
Добавлено: 26.03.08 00:49
Ну, как вариант - создать комбики не на контейнере мультипейдж, а на форме и отображать их поверх всех контролов.

Ответить

Номер ответа: 13
Автор ответа:
 Ig0r



Вопросов: 9
Ответов: 18
 Профиль | | #13 Добавлено: 26.03.08 09:57
Как это сделать?:)

Ответить

Номер ответа: 14
Автор ответа:
 night-roll



Вопросов: 36
Ответов: 326
 Профиль | | #14 Добавлено: 26.03.08 10:38
2Executioner
не великоват примерчик? Вроде, мой попроще будет =)

короче, но не проще! мой код читабельнее! хотя это на вкус программера.
По отношению к твоему коду в моём нет зависимости от языковых и региональных настроек (название месяца)!

Ответить

Номер ответа: 15
Автор ответа:
 night-roll



Вопросов: 36
Ответов: 326
 Профиль | | #15 Добавлено: 26.03.08 10:47
2Ig0r
Как это сделать?:)

внесу поправку на ответ в топике №12.
на форме создать отдельный контейнер, туда кинуть эти "комбы", а КОНТЕЙНЕР поместить поверх "МУЛЬТИПЕЙДЖА". при необходимости можно показывать или скрывать!

Ответить

Страница: 1 | 2 |

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



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