24. april 2004 - 14:59Der er
7 kommentarer og 1 løsning
PasswordChar i multiline input-box
jeg har en multiline inputbox som jeg bruger til at have noget tekst i.
jeg vil gerne give brugeren mulighed for at vælge om indholdet skal skjules. Det vil jeg så gerne gøre med passwordchar. men jeg kan ikke få det til at virke på et multiline input-felt..
Et tag kan bruges til at holde informationer, som brugeren ikke ser, ganske som vist ovenfor. Det kan nogen gange være nyttigt
Du kunne også skrive
Dim strTemp as string If Check1.Value = 1 Then strTemp = Text1.Text Text1.Text = String(Len(strTemp), "*") Text1.Refresh Else Text1.PasswordChar = "" Text1.Text = strTemp Text1.Refresh End If
nu har jeg ikke testet endnu, men som jeg læser det, så tæller den antal bogstaver i feltet, og indsætter det samme antal stjerner istedet.
Problemet er så at jeg jo har en multi-line box... dvs der er flere linier, og det skulle der gerne blive ved med at være.. dvs hvis jeg fx har følgende tekst: ----------------------- hejsa, dette er en test linie 2. linie 3 er her. -----------------------
så skulle det fx gerne se sådan her ud: ----------------------- *********************** ******** *************** -----------------------
kan det lade sig gøre?
og egentligt ved jeg ikke hvor vild jeg er med denne løsning, eftersom den jo umulig-gør at man kan skrive mere i feltet... i et normalt password-felt kan brugeren jo stadig skrive, det bliver bare vist med stjerner. her kan brugeren ikke tilføge eller slette nogen bogstaver "I blinde" som han kan i et password-felt...
så kan du bare indsætte denne funktion i både checkbox on_click event og i text1_change event, så vil den også omdanne den nye tekst til "*", men den vil først skrive det originale bogstav i, og derefter konventere den, men dette når brugeren ikke at opfatte fordi at det går så hurtigt... men dette kræver så at du laver noget med en variable string som den hele tiden skal gemme den originale tekst i.... En anden ting, jo, jeg vil mene at linje mellemrummene vil forsvinde med denne kode men så skal du bare lave en kode med en loop som konventere alt tekst til "*" og lader linjerne være.. ca. sådan her(et skud i tågen)
Private Sub Text1_Change()
Dim strTemp as string Dim strTemp2 as string Dim splString() as string Dim intCount as integer strTemp2 = "" strTemp = strTemp & right(text1.text,1) splString() = split(strTemp,vbcrlf) for intCount = 0 to ubound(splString()) strTemp2 = strTemp2 & string(Len(splString(intCount) & vbcrlf next Text1.text = strTemp2
End Sub
Er ikke testet endnu, men jeg tror det vil virke...
hmm.. fandt lige ud af at det ikke virker helt som det skal, og Dim'erne skal være uden for text1_change, og der skal laves en rutine som chekker ved hjælp af en Boolean og teksten er ved at blive ændret af programmet eller brugeren fordi ellers vil der bare blive sat en uendelig loop i gang... :D... men leg med det, jeg var lige igang med gad ikke lige mere lige nu... prøver igen lidt senere...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.