objektin lisäys

peetee

Miten lisätään objekti suorituksen aikana. Eli kysyn siis koodivinkkiä, miten voin esim. Commandbuttoniin kirjoittaa koodin joka lisää textbox:in lomakkeeseen. Tarvitsisin Vba -koodia.

6

615

    Vastaukset 6

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • ...

      Jos tekstiruudun sijoittaa lomakkeelle ja määrittelee sen ensin näkymättömäksi (esim. Teksti1.Visible=FALSE). CommandButton-kontrollissa Teksti1.Visible=TRUE toisi tekstiruudun uudelleen lomakkeelle näkyviin. Samalla tekstiruudun kokoa ja sijaintia voisi tarvittaessa muuttaa?

    • -jk-

      VB6:ssa näin; en tiedä, toimiiko VBA:na.

      Set txtBox1 = Controls.Add("VB.TextBox", "Text1")
      With txtBox1
      .Width = 2000
      .Height = 300
      .Top = 500
      .Left = 50
      .Visible = True
      .Text = "Eka tekstipoksi"
      End With

      Set txtBox2 = Controls.Add("VB.TextBox", "Text2")
      With txtBox2
      .Width = 2000
      .Height = 300
      .Top = 500
      .Left = 2250
      .Visible = True
      .Text = "Toka tekstipoksi"
      End With

      • peetee

        Eipä näytä vba:ssa toimivan.


    • Petri_Petri

      Itse olen tehnyt tuon niin, että olen tehnyt yhden indeksikontrollin formille, koska käsittääkseni ilman sitä ei kontrolleja voi lisätä. Tai se on ainakin helpoin tapa.

      Eli lisää formille TextBox:
      - laita nimeksi mikä tahansa, vaikka MunTekstiKontrolli
      - laita Index-properties nollaksi (jotta se on taulukkokontrolli eli indeksikontrolli)
      - laita kontrollin Visible-properties Falseksi, jotta se ei näy formissa


      Sitten kun haluat ottaa sen käyttöön, niin muuta kontrollin Visible-properties Trueksi.

      Nyt voit myös lisätä TextBoxeja kuinka monta tahansa.
      - Kontrollin lisäys: Load MunTekstiKontrolli(1)
      - Muuta se näkyväksi: MunTekstiKontrolli(1).Visible=True
      - Aseta sille koordinaatit, esim.: MunTekstiKontrolli(1).Top=100:MunTekstiKontrolli(1).Left=500
      - Määritä sen koko, esim.: MunTekstiKontrolli(1).Height=1000:MunTekstiKontrolli(1).Width=2000


      Sama toimii myös muiden kontrollien kohdalla.

      • peetee

        Tuo ei ilmeisesti toimi vba:ssa, koska siinä ei objekteilla ole ominaisuutta index. Vb 6:ssa tuo kyllä toimii.


      • Petri_Petri
        peetee kirjoitti:

        Tuo ei ilmeisesti toimi vba:ssa, koska siinä ei objekteilla ole ominaisuutta index. Vb 6:ssa tuo kyllä toimii.

        Luulin että kysyit sitä VB:stä. En ole paljon tehnyt VBA:lla, mutta täytyihän tuota yrittää.

        Sain sen toimimaan Excelillä. Eli kun olet tehnyt formin (joka alla on nimellä "UserForm1"), niin seuraava ohjelmakoodi lisää aina uuden tekstikontrollin. Se tulee suoraan näkyviin, joten visible-propertiesta ei tarvitse asettaa Trueksi. Alla olevassa esimerkissä uusi TextBox tulee edellisen alle, jotta ne eivät mene päällekkäin. Uuden kontrollin tekstisisällöksi tulee sen Y-koordinaatti (eli TOP-properties).



        Sub TekstikontrollinLisäys()
        'Tämä lisää Excel-formiin uuden tekstiboxin
        'Laitetaan se aina 20 pistettä edellisen alle
        Dim UusiKontrolli As Control
        Static Y

        Set UusiKontrolli = UserForm1.Controls.Add("forms.textbox.1")
        Y = Y 20
        UusiKontrolli.Text = Str$(Y)
        UusiKontrolli.Top = Y

        End Sub


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Oot upea nainen, älä vähättele ittees

      Ja tietojeni mukaan 2 muuta on susta kiinnostuneit mun lisäks. 👀
      Ikävä
      67
      1142
    2. Mikä kaivatussasi ärsyttää

      Juuri nyt, tällä hetkellä?
      Ikävä
      86
      1036
    3. KP-Sesongilla ongelmia?

      Tarvitsen luotettavaa katonpuhdistajaa ja kuulin, että KP-Sesonki Oy tekee hommat edullisesti ja asiakkaan tarpeet huomi
      Ylöjärvi
      19
      986
    4. Jämsän Paras Ravintola

      Särkijärven kioskiin on avattu uusi upea Maucas ravintola joka on jämsän paras. Loistava palvelu ja herkullinen ruoka. R
      Jämsä
      61
      919
    5. Huh huh...

      Törmäsin toisaalla tekstiin, mitä ajattelet masturboidessasi? Yksi kommentti, avaruusolioita! Täh?! Helvettiläinen oik
      Sinkut
      209
      741
    6. vapaa

      sana :) 🚮
      Ikävä
      63
      616
    7. Onko ihan pakko

      olla niin hiton pitkävihainen? Sinulle nainen...
      Ikävä
      38
      589
    8. Mitä ajattelet

      Kaivattusi elämästä
      Ikävä
      43
      556
    9. Ihmettelet nainen, miten vielä sinua rakastan

      No jos en enää sinua ajattelisi, niin ei se mitään rakkautta olisi alunperinkään. En tarvi sinusta nähdä merkkiäkään, ni
      Ikävä
      40
      556
    10. Kiellettyjä ajatuksia

      Istutaan sylikkäin, katson sun silmiin, vastaat kstseeseen ja kiedon kädet sun ympärille. Huulet koskettaa sun huulia,
      Ikävä
      39
      528
    Aihe