Kā izveidot pārredzamu saraksta lodziņu kontroli?

Kā izveidot pārredzamu saraksta lodziņu kontroli?

Aplūkojot saraksta lodziņa īpašības, jūs pamanīsiet, ka BackStyle īpašums nepastāv. Taču šis īpašums ir pieejams, piemēram, marķējuma kontrolei, tekstlodziņam ... utt

BackStyle īpašums ļauj mums pievienot pārredzamību mūsu kontrolei (fmBackStyleTransparent)

Mūsu piemērā mēs saglabāsim fona attēlu un parādīsim to saraksta apakšā. Mēs izmantosim teksta lodziņu saraksta lodziņa vietā.

I - priekšnoteikumi:

Vispirms zīmējiet UserForm, uz kuru mēs izmantosim fona attēlu (izmantojot Attēla īpašumu).

Šajā UserForm zīmējiet tekstlodziņu.

II - Padoms:

Izmantojiet tekstlodziņa MultiLine, ScrollBars un BackStyle īpašības, lai dotu tai saraksta lodziņa izskatu. Kad tiek ielādēti dati, vienkārši definējiet katru līniju, izmantojot neredzamu raksturu (Chr (1)). Lai izmantotu šos datus, vienkārši iezīmējiet visas šīs izvēles rakstzīmes.

III - kodi

Pēc lietotājaForm inicializēšanas:

 Iespēja Explicit Private Sub UserForm_Initialize () Dim i Kā Integer, texto Kā String i = 1 līdz 100 'Ievadiet tekstu, kas tiks parādīts tekstlodziņā saraksta veidā, ' Katra jaunā rinda sāk neredzamu rakstzīmi Chr (1) Ja i = 1 Tad texto = Chr (1) & "Valeur de liste 1" Else texto = texto & Chr (10) & Chr (1) & "Valeur de liste" & i Nākamais i Ar TextBox1 .BackStyle = fmBackStyleTransparent. = True .ScrollBars = fmScrollBarsVertical .Move 5, 5, Me.Width - 16, Me.Height - 40 'Pēc saraksta ar neredzamo raksturu, lai norādītu, ka tā ir pēdējā rinda .Txtxt = texto & Chr (1 ) 'Ja vēlaties, lai izvēlētā līnija kļūtu par pirmo rindu, vienkārši izdzēsiet šādas koda rindas:' .SetFocus '.CurLine = 0 Beigas ar beigu apakšvirsmu 

Teksta lodziņa MouseDown notikuma laikā:

 Privāts Sub TextBox1_MouseDown (ByVal Poga Kā Integer, ByVal Shift Kā Integer, ByVal X kā Viens, ByVal Y Kā Viens) Dim debSel Tik ilgi, finSel Tik ilgi, kā Tīkla, TxtSel Kā String, i Kā Integer 'Chr (10) rakstzīmes, ko izmanto, lai aizpildītu teksta lodziņu, tiek uzskatītas par 1 rakstzīmi. "Tāpēc šīs procedūras nedrīkst ņemt vērā šajā procedūrā", mums ir jānoņem no mūsu mainīgā texto = Aizstāt (TextBox1.Text, Chr (10), "") "Pārvietojiet peles klikšķi debSel = TextBox1.SelStart finSel = TextBox1.SelStart 'Līnijas vienmēr sākas ar "Chr (1)" rakstzīmi, tāpēc mēs meklēsim:' 1- atpakaļ => dos mums pozīcijas pirmo rindu Do Than Mid (texto, debSel, 1) Chr (1) debSel = debSel - 1 cilpa '2- uz priekšu => dos mums nākamās rindas pirmās rakstzīmes pozīciju Ja Mid (texto, finSel, 1) = Chr (1) Tad finSel = finSel + 1 Vai vidū (texto, finSel, 1) Chr (1) finSel = finSel + 1 cilpa 'cilpa', lai saglabātu izvēlēto saturu mainīgajā lielumā i = debSel + 1 līdz finSel - 1 txtSel = txtSel & Mid (texto, i, 1) Nākamais i 'Kursors rindas sākumā TextBox1.SelStart = debSel' Līnijas izvēle TextBox1.SelLength = finSel - debSel - 1 'Sūtīt atlasīto vērtību šūnu lapās ("Feuil1"). A1 ") = Trim (txtSel) beigu sub 

IV - Turpināt

Varat arī pievienot reālu saraksta lodziņu UserForm un padarīt to neredzamu (ListBox1.Visible = False). Tas nodrošinās lielāku elastību, jo jūs izmantosiet visas saraksta lodziņa īpašības.

V - lejupielāde:

Lejupielādēt parauga failu: //cjoint.com/14av/DDDqYVphUkn.htm

Iepriekšējais Raksts Nākamais Raksts

Top Padomi