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

hidden163 2012-06-08 09:00:05
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

        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;

}
...全文
651 10 打赏 收藏 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
TextBox 要加载完操作才可

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();
}
幸福小6 2012-06-08
  • 打赏
  • 举报
回复
我理解中的重命名,应该是这样做:
将TextBlock与TextBox都放在同一个位置,可以用Grid控件作为容器,然后作为Expander的Header。
一般时候TextBox是隐藏的,当用户的某个操作(触发了某个事件)发生时,将TextBlock隐藏,然后将TextBox显示出来,TextBlock与TextBox两者的Text时bingding在一起的。
hidden163 2012-06-08
  • 打赏
  • 举报
回复
我是打算想做成类似QQ修改组重命名功能
hidden163 2012-06-08
  • 打赏
  • 举报
回复
哪位大侠可以复制代码到VS上小试,昨天试了好久都设不了鼠标焦点在TextBox中
幸福小6 2012-06-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

button1_Click 创建一个TextBox 赋值给Expander的Header ,想选中并且鼠标焦点在TextBox中
[/Quote]
不好意思,今天遇到点事,都搞晕了现在。
那你为何不直接在Expander的XAML里面写呢?
比如:

<Expander>
<Expander.Header>
<TextBox Name="tbHeader" Text="这里啊"/>
</Expander.Header>
</Expander>

后台button1_Click里面:

tbHeader.Focus();
hidden163 2012-06-08
  • 打赏
  • 举报
回复
sender 为Button As TextBox就NULL了
hidden163 2012-06-08
  • 打赏
  • 举报
回复
button1_Click 创建一个TextBox 赋值给Expander的Header ,想选中并且鼠标焦点在TextBox中
幸福小6 2012-06-08
  • 打赏
  • 举报
回复
我晕,我看懂了。
第一句
 TextBox txtbox = new TextBox() { Width = 250, Height = 23 };

改为:
TextBox txtbox = sender as TextBox
幸福小6 2012-06-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

没看懂楼主的意思,你的button1_Click到底要做什么?里面没有一句可以获取焦点的code啊。
[/Quote]
另外,你将expander.Header = txtbox,是想干嘛?
幸福小6 2012-06-08
  • 打赏
  • 举报
回复
没看懂楼主的意思,你的button1_Click到底要做什么?里面没有一句可以获取焦点的code啊。

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧