Kaip sukurti skaidrią dėžutės kontrolę?

Kaip sukurti skaidrią dėžutės kontrolę?

Žiūrėdami į sąrašo dėžutės savybes pastebėsite, kad „BackStyle“ nuosavybė neegzistuoja. Tačiau ši savybė prieinama, pvz., Etikečių valdymui, teksto laukui ir tt

BackStyle“ nuosavybė leidžia mums valdyti skaidrumą (fmBackStyleTransparent)

Mūsų pavyzdyje išlaikysime fono paveikslėlį ir bus rodomas mano sąrašo apačioje. Vietoj sąrašų laukelio naudosime teksto laukelį.

I - Būtinos sąlygos:

Pirmiausia atkreipkite „UserForm“, kuriam taikysime fono paveikslėlį (naudodami „Picture property“).

Šiame „UserForm“ faile atkreipkite teksto laukelį.

II - Patarimas:

Naudokite teksto laukelio „MultiLine“, „ScrollBars“ ir „BackStyle“ ypatybes, kad pateiktumėte sąrašo lango išvaizdą. „Įkeliant“ duomenis tiesiog apibrėžkite kiekvieną eilutę naudodami nematomą simbolį (Chr (1)). Jei norite naudoti šiuos duomenis, tiesiog pažymėkite visus šio pasirinkimo simbolius.

III - Kodai

Pradedant „UserForm“:

 Pasirinkimas aiškus Privatus Sub UserForm_Initialize () Dim i As Integer, texto Kaip eilutė i = 1 iki 100 'Įveskite tekstą, kuris bus rodomas teksto laukelyje sąrašo forma: „Kiekviena nauja eilutė pradeda nematomą simbolį Chr (1) Jei i = 1 Tada texto = Chr (1) & "Valeur de liste 1" Else texto = texto & Chr (10) & Chr (1) & "Valeur de liste" & i Next i With TextBox1. = True .ScrollBars = fmScrollBarsVertical .Perkelkite 5, 5, Me.Width - 16, Me.Height - 40 'Galų gale sąrašas su nematomu simboliu, nurodant, kad tai yra paskutinė eilutė .Txt = texto & Chr (1 ) „Jei norite, kad pasirinkta linija taptų pirmąja eilute, tiesiog išvalykite šias eilutės eilutes:„ .SetFocus “.CurLine = 0 Pabaiga su pabaiga 

Teksto laukelio „MouseDown“ įvykio metu:

 Privatus Sub TextBox1_MouseDown (ByVal mygtukas kaip visiškas, ByVal Shift kaip visiškas, ByVal X kaip vienintelis, ByVal Y kaip Single) Dim debSel Kaip ilgas, finSel kaip ilgas, teksto kaip eilutė, txtSel kaip eilutė, i kaip Integer 'Chr (10) simboliai, naudojami teksto laukui užpildyti, skaičiuojami kaip 1 simbolis. „Todėl šios procedūros nereikėtų atsižvelgti į šią procedūrą“, mes turime juos pašalinti iš mūsų kintamojo texto = Replace (TextBox1.Text, Chr (10), "") 'Perkelti pelės vietą spustelėkite debSel = TextBox1.SelStart finSel = TextBox1.SelStart 'Linijos visada prasideda simboliu „Chr (1)“, todėl ieškosime: „1- atgal => suteiks mums pirmosios eilutės„ Arba viduryje “(texto, debSel, 1) Chr (1) debSel = debSel - 1 kilpa „2- pirmyn => suteiks mums pirmos eilutės kito simbolio poziciją Jei viduryje (texto, finSel, 1) = Chr (1) Tada finSel = finSel + 1 Do Mid (texto, finSel, 1) Chr (1) finSel = finSel + 1 kilpos ciklas, norėdami išsaugoti pasirinktą turinį kintamajame „i = debSel + 1“ į „finSel“ - 1 txtSel = txtSel & Mid (texto, i, 1) Kitas i 'Kursorius eilutės pradžioje TextBox1.SelStart = debSel' Linijos pasirinkimas TextBox1.SelLength = finSel - debSel - 1 'Siųsti pasirinktą vertę ląstelių lapuose ("Feuil1"). A1 ") = Trim (txtSel) pabaiga 

IV - Toliau

Taip pat galite pridėti tikrą sąrašo langą į „UserForm“ ir padaryti jį nematomą („ListBox1.Visible = False“). Tai suteiks daugiau lankstumo, nes naudosite visas „Listbox“ savybes.

V - Atsisiųsti:

Atsisiųsti mėginio failą: //cjoint.com/14av/DDDqYVphUkn.htm

Ankstesnis Straipsnis Kitas Straipsnis

Geriausi Patarimai