Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Jag vill kunna få fram en controls caption som är indexerad?

Postades av 2007-09-12 09:50:24 - Per Johansson, i forum visual basic - allmänt, Tråden har 8 Kommentarer och lästs av 898 personer

Jag vill kunna få fram en controls caption men hur får man fram det på en indexerad control?

If TypeName(Me.Controls(Control.Name)) = "Object" Then
sControlname = Control.Name & "(" & Control.Index & ")"
iIndex = Control.Index
Debug.Print Control.Name(Control.Index).Caption
Debug.Print Control.Name(iIndex).Caption
Else
sControlname = Control.Name
End If


Svara

Sv: Jag vill kunna få fram en controls caption som är indexerad?

Postades av 2007-09-12 13:57:38 - Åsa Holmgren

Jag vet inte riktigt vad du försöker göra men om du loopar igenom alla kontrollerna i ett formlär kan du göra så här oavsett om kontrollerna ingår i en Control Array eller inte:

    Dim ctr As Control
    
    For Each ctr In Me.Controls
        Select Case TypeName(ctr)
            Case "CheckBox", "Frame", "Label", "OptionButton"
                Debug.Print ctr.Caption
            Case Else
                Debug.Print ctr.Name
        End Select
    Next ctr



Svara

Sv:Jag vill kunna få fram en controls caption som är indexerad?

Postades av 2007-09-12 16:12:14 - Sven Åke Persson

Det var ett djä... lurigt problem. Har roat mig att försöka fixa det.
Tänkte exakt som du Åsa, men ! det funkar tyvärr inte.
Jag har testat med Command1 som har ett antal index.

Jag Skall Lösa Det #¤%&!? ;-)


Svara

Sv: Jag vill kunna få fram en controls caption som är indexerad?

Postades av 2007-09-12 20:36:05 - Sven Åke Persson

Efter lite kliande i hårbotten så kommer jag med ett princip förslag.
<code>
Option Explicit
Private Sub Command1_Click(Index As Integer)
'Exempel där jag har Command1 array
'Ropa på ControlCaption från någon kodrad
Call ControlCaption(Me)
End Sub
'Om du bara vill ha just den du klickar på eller den som är aktiv
'så skippa For-satsen och kör bara ett race
Private Sub ControlCaption(Frm As Form)
Dim i As Long, ctr As Control
For i = 0 To Frm.Controls.Count - 1
Set ctr = Frm.Controls(i)
On Error Resume Next
MsgBox ctr.Caption
Debug.Print ctr.Caption
' Ganska osnyggt men det funkar ju
If Err = 438 Then ' Property för ctr.Caption saknas
MsgBox ctr.Name
Debug.Print ctr.Name
End If
Next i
Set ctr = Nothing
End Sub
</code>


Svara

Sv: Jag vill kunna få fram en controls caption som är indexerad?

Postades av 2007-09-12 20:56:46 - Andreas Hillqvist

Kan svaret du söker vara:

Label1(0).Caption


Om du vill skriva ut kontrollernas namn:
Dim ctrl As Control
Dim X As Object
    For Each ctrl In Me.Controls
        Set X = Me.Controls(ctrl.Name)
        If X Is ctrl Then
            Debug.Print ctrl.Name
        Else
            Debug.Print ctrl.Name & "(" & ctrl.Index & ")"
        End If
    Next


Om du vill hämta caption från en kontroll i arrayen:
Private Sub Command2_Click()
    MsgBox GetCaption("Label1", 0) ' Label1(0)
End Sub

Function GetCaption(ControlName As String, ControlIndex As Long) As String
    GetCaption = Me.Controls(ControlName)(ControlIndex).Caption
End Function



Svara

Sv:Jag vill kunna få fram en controls caption som är indexerad?

Postades av 2007-09-12 21:40:09 - Sven Åke Persson

Förstod att det fanns en enkel lösning. Goooood Andreas


Svara

Sv: Jag vill kunna få fram en controls caption som är indexerad?

Postades av 2007-09-12 23:17:08 - Per Johansson

Tusen tack, ni är grymma!

Jag var lite otydlig men ni hjälpte mig lösa frågan.


Svara

Sv:Jag vill kunna få fram en controls caption som är indexerad?

Postades av 2007-09-13 18:43:23 - Sven Åke Persson

Andreas mfl.
Märkligt att man kan skriva så här dvs 2 parantesdelar utan komma.

Kommentera gärna och och ev referens.
<b>GetCaption = Me.Controls(ControlName)(ControlIndex).Caption</b>


Svara

Sv: Jag vill kunna få fram en controls caption som är indexerad?

Postades av 2007-09-16 00:36:44 - Andreas Hillqvist

Det är inte så märkligt. Tänk på nästlade arrayer:

 
Dim X
    X = Array(Array(Array(Array(Array(Array(Array("Wow!")))))))
    
    MsgBox X(0)(0)(0)(0)(0)(0)(0)


Objekt/klasser kan ha default egenskaper.
T.ex. recordset:
    Z = rs("Name")

Motsvarar:
    Z = rs.Fields.Item("Name").Value

Fields är default egenskapen för Recordset.
Item(Index) är default egenskapen för Fields sammlingen.
Value är deafult egenskapen för fält objektet.

Så:
GetCaption = Me.Controls(ControlName)(ControlIndex).Caption

Motsvarar igentligen:
GetCaption = Me.Controls.Item(ControlName).Item(ControlIndex).Caption



Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 725
27 958
271 751
422
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies