首页  ·  知识 ·  
Label
      编辑:  图片来源:网络

作为登陆页面,页面打开时焦点停在用户名的文本框,以及回车键可登陆是比较方便的,但是silverlight默认却没有在页面打开时将焦点设在指定的文本框,也不支持默认按钮。

这需要我们作一点工作。

1.自动设置焦点

开始我尝试过将tabindex设为0,当前页设置焦点[this.Focus()],指定控件设置焦点[this.TextBox1.Focus()],都无法实现在页面打开时将焦点停在指定的控件上。

其实我是忘了一件事,silverlight程序是作为一个插件嵌入在aspx页面中,所谓的页面打开是aspx的页面打开,此时的焦点是停在aspx页面上,而不是silverlight插件上,所以无论你在silverlight程序中怎么Focus都是取不到焦点的。

要实现这个前提条件是在aspx页面打开时【sl插件loaded时】将页面的焦点停在silverlight插件上,然后再在silverlight程序中设置控件的焦点,具体代码如下:

 

1 void Login_Loaded(object sender, RoutedEventArgs e)
2 {
3 //用户名文本框自动聚焦
4 HtmlPage.Plugin.Focus();//silverlight插件聚焦
5 this.tbxUserName.Focus();//用户名文本聚焦
6 }

 

2.回车登陆

这不是一个最好的办法,但是也可以实现回车登陆,大家可以参考一下

具体思路是捕捉页面的keydown事件,然后触发登陆按钮的点击事件,具体代码如下:

 

/// <summary>
/// 页面键盘事件处理
/// </summary>
void Login_KeyDown(object sender, KeyEventArgs e)
{
//回车键登陆
if (e.Key == Key.Enter)
{
btnOK_Click(sender,
new RoutedEventArgs());//登陆按钮的点击事件处理方法
}
}
本文作者:lensso 来源:博客园
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的
收藏至微信