首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

WPF 设置鼠标焦点在TextBox中就那么难吗?该怎么解决

2012-06-09 
WPF 设置鼠标焦点在TextBox中就那么难吗?XAMLStackPanel Expander Nameexpanders Header我要选择

WPF 设置鼠标焦点在TextBox中就那么难吗?
XAML
<StackPanel >
<Expander Name="expanders" Header="我要选择中你,然后直接在键盘输入字">
<WrapPanel Orientation="Vertical">
<Button Content="Button" Height="23" Name="button1" Width="75" Click="button1_Click" />
</WrapPanel>
</Expander>
</StackPanel>

Button事件后台创建Textbox并且设置设置 
SelectAll、Focus

C# code
        private void button1_Click(object sender, RoutedEventArgs e)        {            TextBox txtbox = new TextBox() { Width = 250, Height = 23 };            txtbox.Text = expanders.Header.ToString();            //txtbox.SelectAll();            //txtbox.Focus();            expanders.Header = txtbox;        }


[解决办法]
我理解中的重命名,应该是这样做:
将TextBlock与TextBox都放在同一个位置,可以用Grid控件作为容器,然后作为Expander的Header。
一般时候TextBox是隐藏的,当用户的某个操作(触发了某个事件)发生时,将TextBlock隐藏,然后将TextBox显示出来,TextBlock与TextBox两者的Text时bingding在一起的。
[解决办法]
TextBox 要加载完操作才可
C# code
        TextBox txtbox = null;        private void button1_Click(object sender, RoutedEventArgs e)        {            txtbox = new TextBox() { Width = 250, Height = 23 };            txtbox.Text = expanders.Header.ToString();            expanders.Header = txtbox;            txtbox.Loaded += new RoutedEventHandler(txtbox_Loaded);        }        void txtbox_Loaded(object sender, RoutedEventArgs e)        {            txtbox.SelectAll();            txtbox.Focus();        } 

热点排行