vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Eigene Steuerelemente 
Autor: ModeratorDaveS (Moderator)
Datum: 04.11.04 22:49

Also, das Thema ist eigentlich extrem Umfangreich. Hier ist ein sehr einfaches Beispiel wie man von TextBox ein neues Control ableitet, dass die Eingabe nach bestimmten Regeln prüft (und ein eigenes Property implementiert).
Imports System.ComponentModel
 
Public Class NumOnlyTextBox
    Inherits TextBox
 
    Private _decimalPositions As Integer
 
    Protected Overrides Sub OnKeyPress(ByVal e As KeyPressEventArgs)
        Dim KeyAscii As Integer
        Dim shDecimalPositions As Short
        Dim shLenDecimals As Short
        Dim X As Short
        Dim decSep As String = _
          System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat.Cur_
          rencyDecimalSeparator
 
        KeyAscii = Asc(e.KeyChar)
 
        Select Case KeyAscii
            Case 8, 13 'backspace, & carriage return
                'Do nothing to these
            Case 48 To 57 'digits 0-9
                X = InStr(Me.Text, decSep)
                If X > 0 Then
                    X = Me.Text.Length - X + 1
                    If X > DecimalPositions Then
                        KeyAscii = 0
                    End If
                Else
                    Me.Text = FormatNumber(CDec(Me.Text & Chr(KeyAscii)), 0)
                    Me.SelectionStart = Len(Me.Text)
                    KeyAscii = 0
                End If
            Case 45 'minus sign
                'The number can only have one minus sign, so
                'if we already have one, throw this one away
                If InStr(Me.Text, "-") <> 0 Then
                    KeyAscii = 0
                End If
                'if the insertion point is not sitting at zero
                '(which is the beginning of the field), throw away the(minus)
                'sign (because it's not valid except in first position)
                If Me.SelectionStart <> 0 Then
                    KeyAscii = 0
                End If
            Case 46 'This is the period (decimal point)
                'if we already have a period, throw it away, if this key
                'will exceed decimal positions, then throw away.
                If DecimalPositions > 0 Then
                    If InStr(Me.Text, decSep) <> 0 Then
                        KeyAscii = 0
                    End If
                Else
                    KeyAscii = 0
                End If
            Case Else
                'provide no handling for the other keys
                KeyAscii = 0
        End Select
 
        'If we want to throw the keystroke away, then set the event
        'as already handled. Otherwise, let the keystroke be handled normally.
        If KeyAscii = 0 Then
            e.Handled = True
        Else
            e.Handled = False
        End If
 
    End Sub
 
    <DefaultValue("0"), _
     Description("Number of decimal positions"), _
     Category("Behavior")> _
    Public Property DecimalPositions() As Short
        Get
            Return _decimalPositions
        End Get
        Set(ByVal Value As Short)
            _decimalPositions = Value
        End Set
    End Property
 
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Eigene Steuerelemente1.327Patti081504.11.04 22:38
Re: Eigene Steuerelemente1.004ModeratorDaveS04.11.04 22:49
Re: Eigene Steuerelemente917spike2404.11.04 23:23
Re: Eigene Steuerelemente859ModeratorDaveS04.11.04 23:36
Re: Eigene Steuerelemente827spike2404.11.04 23:50
Re: Eigene Steuerelemente808Supernova05.11.04 14:01
Re: Eigene Steuerelemente864PACoSys28.01.05 08:57
Re: Eigene Steuerelemente797PACoSys31.01.05 12:38
Re: Eigene Steuerelemente832ModeratorDaveS31.01.05 12:49
Re: Eigene Steuerelemente805PACoSys31.01.05 13:04
Re: Eigene Steuerelemente767Patti081505.11.04 11:49
Re: Eigene Steuerelemente830ModeratorDaveS05.11.04 12:13
Re: Eigene Steuerelemente769Patti081505.11.04 22:13
Re: Eigene Steuerelemente912Patti081505.11.04 22:36
Re: Eigene Steuerelemente1.043WaldiMaywood05.11.04 22:42
Re: Eigene Steuerelemente783WaldiMaywood05.11.04 22:41
Re: Eigene Steuerelemente 806ModeratorDaveS05.11.04 22:49
Re: Eigene Steuerelemente 982WaldiMaywood05.11.04 22:52

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel