Silverlight 密码框 Focus

在做一个例子是需要运行起来后焦点默认设置在密码框上,在网上查了资料

自己找到一种方法,此方法在oob模式下管用


public Login()
{
InitializeComponent();

txtLoginName.Text = "admin";
// 设置焦点在密码框上
Dispatcher.BeginInvoke(() => { txtLoginPwd.Focus(); });
}

网上找到的另一种方法

1.想在Silverlight首次启动让某个文本框获取焦点,使用Loaded事件中txt.Focus()是不起做用的,要完成这功能只要添加一句代码即可:

        private void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
{
HtmlPage.Plugin.Invoke("focus");
txtName.Focus();

}

2.在程序中为了方便用户,在一个文本框中按回车后跳到别一个文本框或其它控件,我们可以对原有的TextBox进行扩充,添加一个NextControl的属性用于保存下一个控件的名字,

另外为了方便我加了一个ToNextControl的事件,这样用起来更加方便,代码如下:

namespace HahaMan.SLTools.Controls
{
public class MyTextBox:TextBox
{
//事件
public event EventHandler ToNextControl;

private string nextControl="";
//用于保存下一个控件的名字
public string NextControl
{
get { return nextControl; }
set { nextControl = value; }
}

protected override void OnKeyDown(KeyEventArgs e)
{
base.OnKeyDown(e);
if (e.Key == Key.Enter)//如果是回车
{
if (ToNextControl != null)//如果自己写了事件处理程序
{
ToNextControl(this, e);//调用事件
}
else
{
//如果没有指定事件
if (nextControl != null && nextControl.Length > 0)
{
//查找下一个控件
Control c = (this.Parent as Panel).FindName(nextControl) as Control;
if (c != null)
{
c.Focus();
}
}
}
}
}
}
}

使用方法一:

<my:MyTextBox Height="23" HorizontalAlignment="Left" Margin="786,152,0,0" Name="txtName" <span style="color:#ff0000;">NextControl="txtPwd"</span> VerticalAlignment="Top" Width="120" />
<my:MyTextBox Height="23" HorizontalAlignment="Left" Margin="786,205,0,0" Name="txtPwd" <span style="color:#ff0000;">NextControl="btnLogin"</span> VerticalAlignment="Top" Width="120" />
<Button Content="登录" Height="23" Margin="763,259,0,0" Name="btnLogin" VerticalAlignment="Top" HorizontalAlignment="Left" Width="56" Click="btnLogin_Click" />

使用方法二:
xaml代码:

<my:MyTextBox Height="23" HorizontalAlignment="Left" Margin="786,152,0,0" Name="txtName"  VerticalAlignment="Top" Width="120" <span style="color:#ff0000;">ToNextControl="toNextControl"</span> />
<my:MyTextBox Height="23" HorizontalAlignment="Left" Margin="786,205,0,0" Name="txtPwd" VerticalAlignment="Top" Width="120" <span style="color:#ff0000;">ToNextControl="toNextControl"</span> />
<Button Content="登录" Height="23" Margin="763,259,0,0" Name="btnLogin" VerticalAlignment="Top" HorizontalAlignment="Left" Width="56" Click="btnLogin_Click" />

cs代码:

        private void toNextControl(object sender, EventArgs e)
{
if (sender == txtName) txtPwd.Focus();
if (sender == txtPwd) btnLogin.Focus();
}

网上找的方法转载至 http://blog.csdn.net/lijun7788/article/details/8087773

Silverlight 密码框 Focus,布布扣,bubuko.com

时间: 2024-10-19 21:38:23

Silverlight 密码框 Focus的相关文章

实现密码框默认文字效果实例代码

实现密码框默认文字效果实例代码:大家都知道很多文本框在默认情况下都有默认的提示文本,例如"请输入姓名"之类的语言,当点击文本框的时候,会清除提示语,比较人性化.但是在密码框中实现此效果可能就有点麻烦了,因为密码框不是以明文显示的,下面就介绍一下代码实例解决此问题.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="

wordpress登录密码框明文显示最后一个输入的字符

wordpress登录密码框明文显示最后一个输入的字符 (function(a){a.fn.dPassword=function(c){var e={interval:200,duration:1000,replacement:"%u25CF",prefix:"password_",debug:false};var d=a.extend(e,c);var b=new Array();var f=new Array();a(this).each(function(){

记住密码后,密码框Password会自动带出数据

一般登陆之后浏览器会询问是否记住密码,如果把密码记住在浏览器上,下次登陆的时候浏览器会把用户名和密码自动填充到登录页面.前段时间服务站平台的员工账号模块提测后,测试提出360浏览器记住密码后会自用把登陆账号和密码填充到添加账号页面和修改账号页面(部分其他浏览器也会有该问题),经过本地测试后发现确实存在该问题. 类似于这样: 从用户的角度来说 这么整肯定不行,即使是浏览器的问题.通过组内人员的一步一步探索最终找到解决办法: 1. 通过网上搜索 发现有些文章是提供设置设置文本框的autocomple

placeholder插件兼容ie6.7.8,(支持密码框)

copy以下的代码,放在单独的js里面,引入有placeholder的页面,就ok啦 (function($) { var placeholderfriend = { focus: function(s) { s = $(s).hide().prev().show().focus(); var idValue = s.attr("id"); if (idValue) { s.attr("id", idValue.replace("placeholderfr

IE下支持文本框和密码框placeholder效果的JQuery插件

基于jQuery实现的,主要用于IE下实现placeholder效果,可同时支持文本和密码输入框.placeholder是HTML5新增的一个属性,当input设置了该属性后,该值的内容将作为灰色提示显示在文本框中,当文本框获得焦点时,提示文字消失. 实现代码如下: (function($) {  /**   * 没有开花的树   * 2012/11/28 15:12   */ var placeholderfriend = {    focus: function(s) {      s =

登录被浏览器记住密码后,密码填充到密码框问题

一般登陆之后浏览器会询问是否记住密码,如果把密码记住在浏览器上,下次登陆的时候浏览器会把用户名和密码自动填充到登录页面.工作中做项目提测后,测试提出360浏览器记住密码后会自用把登陆账号和密码填充到添加账号页面和修改账号页面,经过本地测试后发现确实存在该问题. 类似于这样: 从用户的角度来说 这么整肯定不行,即使是浏览器的问题.通过组内人员的一步一步探索最终找到解决办法: 1.通过网上搜索 发现有些文章是提供设置设置文本框的autocomplete属性为off,根据该方法修改后发现并没有解决问题

iOS密码框的实现方式

说一下密码加密的实现方式 效果图: 实现方式: 主要说一下密码框的实现,这个密码框中间的四个数字其实是4个 UITextField ,然后通过键盘删除键 和TextFiled 的协议shouldChangeCharactersInRange.来判断输入的位置,代码如下: 直接上代码: // //  IDSGameRoomSecretView.h // //  Created by levi.duan on 2017/7/18. //  Copyright ? 2017年 Near. All ri

Android 判断EditView是否为密码框

最近在做项目的时候需自动判断,一个登陆页面中EditView是否为密码框,我们可以使用inPutType属性来判断,我们可以利用getInputType()来判断,getInputType == 129时EditView就是一个密码框.

iOS密码框实现(二)取消确定按钮

由于将确定按钮去掉了,所以需要重新修改下代码,当输入第四个数字时,自动进入房间. iOS 密码框效果图: 实现方式: 首先声明一个block初始化方法,因为这只是个框框,并不需要处理网络请求等等,需要提供一个block给调用方,调用方利用block 去拿到密码,利用密码做一些开房间等操作. 利用计时器通过0.2秒来看清输入第四位密码,用户输入4位密码后自动进入下一步操作. 1.头文件需要定义: @classIDSGameRoomSecretView; typedefvoid(^selfhandl