Eine funktionierende Private Sub Formel als Public Function
Ich habe eine funktionierende Formel auf mehrere Elemente verteilt und möchte diese nun als Public Function definieren,
jedoch kriege ich es einfach nicht gebacken diesesmal..
Hallo an alle
Ich bin relativ neu in der Programmation und bastele seit 3 Tagen an einem Password Generator.
Der funktioniert relativ gut und nun moechte ich noch einiges aufraeumen und all die Formeln die des oefteren benutzt werden als Function zusammenfassen
Ich habe zBsp hier eine TextBox in der ich mit der Formel unten nur die Eingabe von "0123456789" erlaube.
So als Private Sub funktioniert das auch relativ gut aber ich kriege die Formel unten einfach nicht in eine Public Function
Die Public Funtion würde dann so aussehen mit der Ausfuehrung (nun werded ihr aber etwas feststellen... dazu untendrunter):
Ja... zuerst weiß ich nicht richtig wie ich den Output definiere, ich habe es schon mit "Return Input = theText" probiert aber was ist dann mit " Input.Select(SelectionIndex - Change, 0)"?
Ich hoffe ihr koennt mir helfen!
MFG Michel
P.S.: Bitte überseht die vielen Programmierfehler fürs erste, ich bin Anfänger
jedoch kriege ich es einfach nicht gebacken diesesmal..
Hallo an alle
Ich bin relativ neu in der Programmation und bastele seit 3 Tagen an einem Password Generator.
Der funktioniert relativ gut und nun moechte ich noch einiges aufraeumen und all die Formeln die des oefteren benutzt werden als Function zusammenfassen
Ich habe zBsp hier eine TextBox in der ich mit der Formel unten nur die Eingabe von "0123456789" erlaube.
So als Private Sub funktioniert das auch relativ gut aber ich kriege die Formel unten einfach nicht in eine Public Function
Private Sub TxBxRndNum_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxBxRndNum.TextChanged
Dim charactersAllowedNUM As String = "0123456789"
Dim theText As String = TxBxRndNum.Text
Dim Letter As String
Dim SelectionIndex As Integer = TxBxRndNum.SelectionStart
Dim Change As Integer
For x As Integer = 0 To TxBxRndNum.Text.Length - 1
Letter = TxBxRndNum.Text.Substring(x, 1)
If charactersAllowedNUM.Contains(Letter) = False Then
theText = theText.Replace(Letter, String.Empty)
Change = 1
End If
Next
TxBxRndNum.Text = theText
TxBxRndNum.Select(SelectionIndex - Change, 0)
End Sub
Dim charactersAllowedNUM As String = "0123456789"
Dim theText As String = TxBxRndNum.Text
Dim Letter As String
Dim SelectionIndex As Integer = TxBxRndNum.SelectionStart
Dim Change As Integer
For x As Integer = 0 To TxBxRndNum.Text.Length - 1
Letter = TxBxRndNum.Text.Substring(x, 1)
If charactersAllowedNUM.Contains(Letter) = False Then
theText = theText.Replace(Letter, String.Empty)
Change = 1
End If
Next
TxBxRndNum.Text = theText
TxBxRndNum.Select(SelectionIndex - Change, 0)
End Sub
Die Public Funtion würde dann so aussehen mit der Ausfuehrung (nun werded ihr aber etwas feststellen... dazu untendrunter):
Public Function blockCharNotNum(Input)
Dim charactersAllowedNUM As String = "0123456789"
Dim theText As String = Input
Dim Letter As String
Dim SelectionIndex As Integer = Input.SelectionStart
Dim Change As Integer
For x As Integer = 0 To Input.Length - 1
Letter = Input.Substring(x, 1)
If charactersAllowedNUM.Contains(Letter) = False Then
theText = theText.Replace(Letter, String.Empty)
Change = 1
End If
Next
Input = theText
Input.Select(SelectionIndex - Change, 0)
End Function
Private Sub TxBxPswdLgth1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxBxPswdLgth1.TextChanged
TxBxPswdLgth1.Text = blockCharNotNumerical(TxBxPswdLgth1.Text)
End Sub
Dim charactersAllowedNUM As String = "0123456789"
Dim theText As String = Input
Dim Letter As String
Dim SelectionIndex As Integer = Input.SelectionStart
Dim Change As Integer
For x As Integer = 0 To Input.Length - 1
Letter = Input.Substring(x, 1)
If charactersAllowedNUM.Contains(Letter) = False Then
theText = theText.Replace(Letter, String.Empty)
Change = 1
End If
Next
Input = theText
Input.Select(SelectionIndex - Change, 0)
End Function
Private Sub TxBxPswdLgth1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxBxPswdLgth1.TextChanged
TxBxPswdLgth1.Text = blockCharNotNumerical(TxBxPswdLgth1.Text)
End Sub
Ja... zuerst weiß ich nicht richtig wie ich den Output definiere, ich habe es schon mit "Return Input = theText" probiert aber was ist dann mit " Input.Select(SelectionIndex - Change, 0)"?
Ich hoffe ihr koennt mir helfen!
MFG Michel
P.S.: Bitte überseht die vielen Programmierfehler fürs erste, ich bin Anfänger
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 166881
Url: https://administrator.de/contentid/166881
Ausgedruckt am: 22.11.2024 um 00:11 Uhr
6 Kommentare
Neuester Kommentar
Moin,
Vorab: Benutze doch bitte code-tags, wenn Du code postest, das macht das lesen leicher
Etwas so:
Vorab: Benutze doch bitte code-tags, wenn Du code postest, das macht das lesen leicher
Bitte überseht die vielen Programmierfehler fürs erste, ich bin Anfänger
Ok Public Function blockCharNotNum(Input)
Gewöhn dir am besten gleich an, immer den Variablen Typ mit anzugebenEtwas so:
Public Function blockCharNotNum(theText as string) as string
Dim Letter As String
Dim SelectionIndex As Integer = Input.SelectionStart
Dim Change As Integer
For x As Integer = 0 To theText .Length - 1
Letter = theText .Substring(x, 1)
If charactersAllowedNUM.Contains(Letter) = False Then
theText = theText.Replace(Letter, String.Empty)
Change = 1
End If
Next
return theText
end function
Is schon reichlich verworren dein Code
Versuchs doch mal so:
Versuchs doch mal so:
public function blockCharNotNum(theText as string) as string
Dim charactersAllowedNUM As String = "0123456789"
Dim Result as string=""
for each c as char in theText.ToCharArray
if charactersAllowedNUM.Contains(c) then
Result += c
end if
next
return Result
end function
Private Sub TxBxPswdLgth1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxBxPswdLgth1.TextChanged
TxBxPswdLgth1.Text = blockCharNotNum(TxBxPswdLgth1.Text)
End Sub