gpt4 book ai didi

Silverlight 文本框覆盖

转载 作者:行者123 更新时间:2023-12-02 17:52:52 24 4
gpt4 key购买 nike

我正在尝试获取文本框按键事件来捕获退格键按下事件。我通过添加一个覆盖文本框的类来实现这一点。我不知道该怎么做是与用户控件中文本框所在的类进行通信。

当用户在文本框中键入...例如 abcd 或退格键时,我需要更新用户控件上的某些内容。假设我想要一些东西来显示文本框中有多少个字符。有人可以帮我吗?这是我到目前为止所拥有的

Option Strict On
Imports System.Text.RegularExpressions

Partial Public Class Page
Inherits UserControl

Public Sub New()
InitializeComponent()
Dim textbox As New MyTextBox() With {.Width = 300, .Height = 100}
LayoutRoot.Children.Add(textbox)
End Sub
End Class

Public Class MyTextBox
Inherits TextBox
Protected Overrides Sub OnKeyDown(ByVal e As KeyEventArgs)
MyBase.OnKeyDown(e)
If e.Key = Key.Back Then
e.Handled = True
MyBase.OnKeyDown(e)

ElseIf e.Key = Key.Delete Then
e.Handled = True
MyBase.OnKeyDown(e)
End If
End Sub
End Class

谢谢香农

最佳答案

您不需要子类化 TextBox 来执行此操作。相反,为 TextBox.TextChanged 添加处理程序事件就在您的 UserControl 类中。调用此函数时,事件的发送者应该是您的 TextBox。然后您可以从中获取文本并执行您需要执行的操作。

更新:根据评论,以下内容应该有效:

Partial Public Class Page
Inherits UserControl

Private TextBox1 as TextBox

Public Sub New()
InitializeComponent()
TextBox1 = New TextBox() With {.Width = 300, .Height = 100}
LayoutRoot.Children.Add(textbox)
End Sub

Private Sub OnTextChanged(sender as Object, e as TextChangedEventArgs) Handles TextBox1.TextChanged
If e.Key = Key.Back Then
e.Handled = True
ElseIf e.Key = Key.Delete Then
e.Handled = True
End If
End Sub
End Class

(我的 VB 有点生疏,因此事件处理程序语法可能不完全正确。)

基本思想是当 UserControl 内的 TextBox 中的文本发生更改时收到通知。这样您就可以根据需要修改 UserControl 的其他部分。

关于Silverlight 文本框覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/898961/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com