Silverlight 密碼框 Focus

來源:互聯網
上載者:User

標籤:style   blog   class   code   c   java   

在做一個例子是需要運行起來後焦點預設設定在密碼框上,在網上查了資料

自己找到一種方法,此方法在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();        }
View Code

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();                        }                    }                }            }        }    }}
View Code

使用方法一:

<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" />
View Code

使用方法二:
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" />
View Code

cs代碼:

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

網上找的方法轉載至 http://blog.csdn.net/lijun7788/article/details/8087773

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.