Avatar billede daddo Nybegynder
23. oktober 2001 - 21:54 Der er 13 kommentarer og
1 løsning

2 problemer: TabStrip & ComboBox

1/ Jeg har en \"TabStrip\" menu, mit problem at jeg gerne vil have at \"Tab 3\" er valgt og ikke \"Tab 1\" (som er standart) når siden bliver loadet ind...?

--------------------------------------------------------------

2/ jeg har en ComboBox hvor jeg indlæser en masse navne på byer

byer.AddItem Trim(objRS.Fields(\"byer\"))
byer.ItemData(byer.NewIndex) = objRS.Fields(\"byerid\")

Bagefter indlæses en bestemt kunde profil, navn adresse. by OSV.

byer = objRS.Fields(\"by\")

Ved byer hopper den rigtig nok ned, det rigtige sted i ComboBox menu´en,
men hvis jeg opdatere profilen kommer der en fejlmeddelse fordi der ikke er id på byen (id mangler)

Hvis jeg inden jeg opdatere giver ComboBox focus, men lader den stå på den samme, virker det?
Hvordan skal det gøres..

Håber at i kan forstå mit problem

Daddo
Avatar billede terry Ekspert
24. oktober 2001 - 11:05 #1
Answer to Q1:
If You have a form in tab3 then you do it as follows in the main forms On load event.

Me.formToTab3.SetFocus


Avatar billede netraider Nybegynder
24. oktober 2001 - 11:06 #2
TabStrip problemet, kan vel løses, i en Form_Load procedure, der sætter den aktive strip til 3?
-----
Forstår ikke helt dit andet problem!
M.V.H.
Loke
Avatar billede daddo Nybegynder
24. oktober 2001 - 14:03 #3
Jeg kan ikke få \"Me.formToTab3.SetFocus\" til at virke?
Har prøvet:
TabStripToTab3.SetFocus
Me.formToTabStrip.Tab3.SetFocus
Og mange andre...
Hvordan skal det skrives???

-----------------------

Mit andet problem er at jeg vil indlæse en masse data i en combobox (navn, id)

byer.AddItem Trim(objRS.Fields(\"byer\"))
byer.ItemData(byer.NewIndex) = objRS.Fields(\"byerid\")

Bagefter vil jeg gerne vælge en bestemt i ComboBoxen, feks. id nr. 320 (står midt i menuen)

Daddooo
Avatar billede bennytordrup Nybegynder
24. oktober 2001 - 19:51 #4
For at vælge en side på et tabstrip skal du gøre et af følgende i Form_Load:

1) Set TabStrib1.SelectedItem = TabStrib1.Tabs(3)

2) TabStrib1.Tabs(3).Selected = 2

Personligt foretrækker jeg metode 1
Avatar billede bennytordrup Nybegynder
24. oktober 2001 - 22:57 #5
Med hensyn til combo-boxen, så kan jeg ikke se anden løsning end at søge comboboxen igennem og test ItemData på hver enkelt element. Finder du det ønskede id-nr, sætter du byer.listindex lig med det fundne index på itemdata.

Hvis du har mange elementer, skal du muligvis teste ItemData via API:

Private Const CB_ERR = (-1)
Private Const CB_GETITEMDATA = &H150

Private Declare Function SendMessage Lib \"user32\" Alias \"SendMessageA\" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Public Sub Combo_FindItemData(cb as ComboBox, p_ItemData as Long) as Long
\' Returnerer index på det element, som har p_ItemData som ItemData.
Dim Idx as long, IData as long

For Idx = 0 to cb.ListCount-1
  IData = SendMessage(cb.hWnd, CB_GETITEMDATA, Idx, 0&)
  if IData = p_ItemDate then
    \' Vi fandt den - returner index.
    Combo_FindItemData = Idx
    Exit function
  end if
next Idx
\' Når vi hertil, blev p_ItemData ikke fundet. Så returneres -1
Combo_FindItemData = CB_ERR
Avatar billede bennytordrup Nybegynder
24. oktober 2001 - 22:58 #6
Glemte lige:

End Sub

Desuden: Det skal være Function og ikke Sub :-/
Avatar billede daddo Nybegynder
24. oktober 2001 - 23:48 #7
Tak for svarene

Perfekt med løsningen på problemmet med comboboxen

Men \"Tabstrip\" kan stadig ikke få det til at virke.

1) Set TabStrib1.SelectedItem = TabStrib1.Tabs(3)
2) TabStrib1.Tabs(3).Selected = 2

Det skal siges jeg bruger den som knapper (Tabbuttons), men jeg har prøvet at lave dem om til almindelige Tabs, og det hjælp heller ikke.

Daddo
Avatar billede bennytordrup Nybegynder
25. oktober 2001 - 07:03 #8
Hvad sker der i dit TabStrib1_Click event?
Avatar billede daddo Nybegynder
25. oktober 2001 - 13:39 #9
Det jeg er ved at lave er en statistik.
12 knapper 1 for hver månede.
Det jeg gerne vil have er at ved Form_Load, er  at hvis vi er i 10 månede, er knap 10 nede...

Daddooo
Avatar billede bennytordrup Nybegynder
25. oktober 2001 - 13:44 #10
Er dine tabs lavet designtime eller bliver de tilføjet run-time?
Avatar billede daddo Nybegynder
25. oktober 2001 - 15:38 #11
De er lavet i designtime


Avatar billede bennytordrup Nybegynder
25. oktober 2001 - 15:44 #12
Jeg har lige prøvet. Den her virker på min computer

Private Sub Form_Load()
    Set TabStrip.SelectedItem = TabStrip.Tabs(10)
End Sub

Jeg bruger Microsoft Windows Common Controls 6.0
Avatar billede daddo Nybegynder
25. oktober 2001 - 16:40 #13
Du har ret, jeg har lige prøvet igen og nu virker? jeg ved ikke hvad jeg har lavet galt første gang.

Så det er rigtig godt, det var det sidste problem.

Mange tak for din hjælp..

Daddo


Avatar billede daddo Nybegynder
25. oktober 2001 - 16:55 #14
Jeg glemte at dig point...

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester