我有一个包含4个文本框控件的应用程序:TotalTextBox
,PaidTextBox
,RemainingTextBox
和DriverTextBox
。
如何通过用户关注当前文本框(仅当它不是DriverTextBox
时,即仅来自TotalTextBox
,PaidTextBox
,RemainingTextBox
)?
在程序启动时,它应该关注TotalTextBox控件。我还实现了一个try / catch,这样它只能默认重点关注TotalTextBox控件。
到目前为止,这是我的代码:
MainWindow.Xaml.cs (其中tb是我想要传递的焦点文本框)
public MainWindow()
{
InitializeComponent();
TotalTextBox.Focus();
// Setup keypad
bool dotControl = false;
int count = 0;
}
private void RemoveLastButton_Click(object sender, RoutedEventArgs e)
{
try
{
var keypadObject = new Keypad();
keypadObject.RemoveLast(TextBox tb, bool dotControl, int count);
}
catch (Exception)
{
TotalTextBox.Focus();
}
}
Keypad.cs
public void RemoveLast(TextBox tb, bool dotControl, int count)
{
if (tb.Text.Length > 0)
{
if (char.IsDigit(tb.Text[tb.Text.Length - 1])) count = 0;
else
{
dotControl = false;
count = 0;
}
tb.Text = tb.Text.Remove(tb.Text.Length - 1, 1);
}
}
答案 0 :(得分:2)
要获取当前关注的文本框,您可以执行以下操作:
TextBox textbox = Keyboard.FocusedElement as TextBox;
如果textbox
最终为null
,那么它不是当前关注的文本框。
要完成答案,您可以通过与已知文本框进行简单比较来过滤您想要的内容。
if (textbox != null && textbox != DriverTextBox)
{
var keypadObject = new Keypad();
keypadObject.RemoveLast(textbox, dotControl, count);
}