Более простой способ, который я вижу, состоит в том, что вы можете создать пользовательский элемент управления, наследующий от TextBox, и переопределить свойство Text, чтобы оно изменяло текст в верхний регистр.
Public Class UppertextBox
Inherits Web.UI.WebControls.TextBox
Public Overrides Property Text As String
Get
Return MyBase.Text.ToUpper
End Get
Set(ByVal value As String)
MyBase.Text = value.ToUpper ' no check for null, add it if necessary
End Set
End Property
End Class
Верхний регистр может зависеть от свойства вашего элемента управления, чтобы вы могли настраивать текстовое поле на странице, используя его.
Public Class UppertextBox
Inherits Web.UI.WebControls.TextBox
Public Property Uppercase As Boolean
Public Overrides Property Text As String
Get
If Uppercase AndAlso Not String.IsNullOrEmpty(MyBase.Text) Then
Return MyBase.Text.ToUpper
Else
Return MyBase.Text
End If
End Get
Set(ByVal value As String)
If Uppercase AndAlso Not String.IsNullOrEmpty(value) Then
MyBase.Text = value.ToUpper
Else
MyBase.Text = value
End If
End Set
End Property
End Class
Ваш унаследованный элемент управления также может установить его стиль в верхний регистр, но я бы порекомендовал альтернативно использовать темы, если вы не хотите задавать стиль при каждом использовании
EDIT
C # версия будет выглядеть как
public class UppercaseTextBox : System.Web.UI.WebControls.TextBox
{
public Boolean Uppercase { get; set; }
public override string Text
{
get
{
return Uppercase && !string.IsNullOrEmpty(base.Text) ? base.Text.ToUpper() : base.Text;
}
set
{
base.Text = Uppercase && !string.IsNullOrEmpty(value) ? value.ToUpper() : value;
}
}
}