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

573

    Vastaukset

    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. Dannysta tulee isä 83-vuotiaana

      Huh huh sentään sellaista naista, joka laitattaa itsensä paksuksi ikälopulle papalle ! Ajatellaanko lapsen oikeuksia oll
      Maailman menoa
      125
      5043
    2. Seida Sohrabi: Suomi ei ole rasistinen maa

      Seidalta taas täyttä asiaa. Miksi punavihreät naiset eivät pysty samaan - no se ideologia estää. "Meillä on valitettava
      Maailman menoa
      173
      3762
    3. Ketkä haukkuu suomalaisten ÄO:tä?

      Siinä on kaksi vaihtoehtoa, joko siis rutiköyhä vajaaälyinen vasuri tai venäläinen. Kyllähän täällä käy suomenvenäläisi
      Maailman menoa
      46
      3198
    4. Pääsiäisen kunniaksi tekoälyn analyysi Riikka Purran kirjoituksesta

      🧠 Mitä kirjoitus kertoo Riikka Purrasta? 1. Asenteellinen ja epäasiallinen sävy: Kirjoitus pursuaa halveksivaa, jopa a
      Maailman menoa
      23
      3172
    5. Henkirikos kiuruvedellä

      Poliisi tutkii maaliskuussa tapahtunutta 50 luvulla syntyneen kuolemaa henkirikoksena. Missä päin tälläinen sattunut
      Kiuruvesi
      41
      1759
    6. Gallup: Mitä teillä syödään pääsiäisenä, onko juhlaruokaa vai meneekö arkiruoilla?

      Monessa perheessä pääsiäisenä pöytään pistetään vähän parempaa herkkua. Pääruokaan panostetaan ja lisäksi leivotaan vaik
      Liharuoka
      40
      1279
    7. Loimaan k-citymarketilla puukotus

      Jonka on puukotettu Loimaan citymarketilla tänään iltapäivällä noin klo 14. Kuulin kun ambulanssi huusi kaupungilla kun
      Loimaa
      38
      1185
    8. Martinan ex-rakas ulkoilutti Espanjassa koiraa.

      No on hyvä asia, että heillä on kuitenkin hyvät välit, vaikka eroneet jo viimme syksynä.
      Kotimaiset julkkisjuorut
      304
      1098
    9. Kunnanjohtaja haista sinä

      Kyvytön johtamaan kuntaa! Täysin kyvytön. Toivottavasti Hattula saa sinut vaivoikseen. Epäpätevä, ammattitaidoton, yhtei
      Heinävesi
      30
      1071
    10. Jos hän pyytäisi luokseen!?

      Uskaltaisitko mennä?
      Ikävä
      83
      1046
    Aihe