Los*_*los 1 .net c# wpf error-handling controls
我想将GotFocus-Event添加到我的WPF-Aplication中的每个Textbox中,因为它适用于Touch Devices,每次使用TextBox时OSK都应该打开.我遇到了将事件添加到TextBoxes的过程的问题.应用程序已经构建了pc(我正在使用interhsip,我的目标是将这个应用程序带到Windows 8触摸设备).这是链接,我得到了我的灵感:添加/删除处理程序到文本框
这是我的解决方案:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
foreach (Control tb in this.Controls)
{
if (tb is TextBox)
{
TextBox tb1 = (TextBox)tb;
tb1.GotFocus += TextBox_GotFocus;
}
}
}
private void TextBox_GotFocus(object sender, RoutedEventArgs e)
{
KeyBoardManager.LaunchOnScreenKeyboard();
}
Run Code Online (Sandbox Code Playgroud)
当我想运行此代码时,我有以下错误:
错误1'OSK_Test.MainWindow'不包含'Controls'的定义,也没有扩展方法'Controls'接受类型'OSK_Test.MainWindow'的第一个参数(你是否缺少using指令或程序集引用?)
我有什么需要做的,它有效吗?当然,与LostFocus一样!
小智 8
您可以做得更好,将以下代码添加到app.xaml.cs:
protected override void OnStartup(StartupEventArgs e)
{
EventManager.RegisterClassHandler(typeof(TextBox),
TextBox.GotKeyboardFocusEvent, new RoutedEventHandler(TextBox_GotFocus));
base.OnStartup(e);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7111 次 |
| 最近记录: |