質問

私のSilverlight用できないようにしているかを明るみに出していく、テキストボックス。の推薦に基づき様々な投稿をセットにIsTabStopィをTrueに、私が使っているテキストボックス.Focus().ものUserControl_Loadedイベント焼成、テキストボックス制御なっています。していた私は非常に単純なコードです。と思欠?感謝。

ページです。ー

<UserControl x:Class="TextboxFocusTest.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Loaded="UserControl_Loaded" 
    Width="400" Height="300">

    <Grid x:Name="LayoutRoot" Background="White">        
        <StackPanel Width="150" VerticalAlignment="Center">            
            <TextBox x:Name="RegularTextBox" IsTabStop="True" />    
        </StackPanel>        
    </Grid>
</UserControl>

ページです。ー.cs

using System.Windows;
using System.Windows.Controls;

namespace PasswordTextboxTest
{
    public partial class Page : UserControl
    {
        public Page()
        {
            InitializeComponent();
        }

        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            RegularTextBox.Focus();
        }
    }
}
役に立ちましたか?

解決

いつかそのsilverlight.netすることができたが私にとっての追加の呼び出します。Windowsの場合です。ブラウザです。HtmlPage.引き出しおよび設定ができますFocus()を呼びRegularTextBox.Focus():

   private void UserControl_Loaded(object sender, RoutedEventArgs e)
   {        
      System.Windows.Browser.HtmlPage.Plugin.Focus();
      RegularTextBox.Focus();
   }

他のヒント

Plugin.Focus(); 

動作しなかった。

呼び出し

 Dispatcher.BeginInvoke(() => { tbNewText.Focus();});

負荷からイベント。

コサンティアゴPalladinoディスパッチャに働く。ないということです:

ます。Focus();その Dispatcher.BeginInvoke(()=>{tbNewText.Focus();});

私は解決には制御コンストラクタ:

this.TargetTextBox.Loaded += (o, e) => { this.TargetTextBox.Focus(); };

まだまだ非常に重?ある既知のバグを修正ベータ2つけることができますがフォーカスを取得することができるタイプのがんのキャレットのボーダーの回避策はUpdateLayout()をテキストボックス直前に呼び出すFocus().

おうを追加するDispatcherTimerのUserLoadedイベントを実行するための方法を数ミリ秒後に全体の制御にはログラム(粉を山にして真ん中に問題がございます。

また必要なコ

展開。ます。Dispatcher.BeginInvoke(()=>myTextbox.Focus());

興味深いことにこの呼び出しが起こっている内イベントハンドラがっmouseclickにTextBlock崩壊のTextBlockのテキストボックスに見えています。わり合いは継続しないでディスパッチャ.BeginInvokeでいます。

-マイク

使コードの設定は正しいかを追加した場合、ボタン電話と同じコードでコンビニエンスストア:

<StackPanel Width="150" VerticalAlignment="Center">
    <TextBox x:Name="RegularTextBox" IsTabStop="True" />
    <Button Click="UserControl_Loaded">
        <TextBlock Text="Test"/>
    </Button>
</StackPanel>

さんこういFocus()必要な何らかのユーザーの相互作用が入手できなかったので、MouseMoveイベントのUserControlがけKeyDownイベント設定の作品がテンプレートが更新されないためのテンプレート).

Width="400" Height="300" Loaded="UserControl_Loaded" KeyDown="UserControl_KeyDown">

うバグをいてくれる。

のためのブラウザアプリの System.Windows.Browser.HtmlPage.Plugin.Focus(); お使いになれません。

私の質問はここ その他のアイデア。

を動作させることができ、私SL4、IE7、Firefox3.6.12

最終抜け"作品"を重点を作った。TabIndex物件

        System.Windows.Browser.HtmlPage.Plugin.Focus();
        txtUserName.IsTabStop = true;
        txtPassword.IsTabStop = true;

        if (txtUserName.Text.Trim().Length != 0)
        {
            txtPassword.UpdateLayout();
            txtPassword.Focus();
            txtPassword.TabIndex = 0;
        }
        else
        {
            txtUserName.UpdateLayout();
            txtUserName.Focus();
            txtUserName.TabIndex = 0;
        }

マイプロフィールするのに十分ではないのコメント@Jim B-Gの 答え んただったのを追加するためのハンドラを搭載イベントのRichTextBox内するハンドラを追加

System.Windows.Browser.HtmlPage.Plugin.Focus();
<YourTextBox>.UpdateLayout()
<YourTextBox>.Focus();

しかし、くだけた、IE、FF.取得でChrome、Safari、スクロールを この

私は忘れても---私はいかに力点をSilverlightアプリのページで確実であることを伝えてください仕事の一部のブラウザでいます。

なっているのかもしれませんのSilverlightアプリそのものになっています。いかにユーザーをクリックするとボタンまたは類似したいスタートして、少しずつ期待をキーボード入力させることによってsilverlightアプリです。

またこの問題だったが、さらに別の例のようにして回答をこちらです。

とした場合 BusyIndicator 制御表示されていると隠れた全ての中、コントロールシステムなフォーカスを取得する場合を行う

Dispatcher.BeginInvoke(() => { myControl.Focus();}); 

の負荷のイベントです。

けるのではなく、電話をする必要がありその行のコード おBusyIndicator表示してfalseに設定されています。

私には関連する質問 こちらの, どのソリューションとしてこのシナリオ。

私たちは、このようんbeheviour.この簡単な単純液

(VBコード)

    Me.Focus()
    Me.UpdateLayout()

    Me.tbx_user_num.Focus()
    Me.tbx_user_num.UpdateLayout()

各要素は必須で、私のプロジェクトの少なくとも(VB2010SL4OutOfBrowser).

信用い: http://www.dotnetspark.com/kb/1792-set-focus-to-textbox-silverlight-3.aspx

この中から、答えた私にとって直接うかがいこのイベントのMainPage()コンストラクタ:

this.Loaded += new RoutedEventHandler(MainPage_Loaded);

および取り扱いしており

   void MainPage_Loaded(object sender, RoutedEventArgs e)
    {
        System.Windows.Browser.HtmlPage.Plugin.Focus();
        RegularTextBox.Focus();
    }

私のSilverlight versionは4.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top