wpf 文本框问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf 文本框问题相关的知识,希望对你有一定的参考价值。

我用vs2008写计算器wpf程序我想知道怎么保留文本框的内容比如说,我要输入12,我在输入2的时候不会把1给覆盖掉,,还有怎么让他从右往左显示啊,,给位大侠请指点一下

参考技术A 限制只能输入数字:
private void textBox1_KeyDown(object sender, KeyEventArgs e)

TextBox txt = sender as TextBox;

//屏蔽非法按键
if ((e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) || e.Key == Key.Decimal)

if (txt.Text.Contains(".") && e.Key == Key.Decimal)

e.Handled = true;
return;

e.Handled = false;

else if (((e.Key >= Key.D0 && e.Key <= Key.D9) || e.Key == Key.OemPeriod) && e.KeyboardDevice.Modifiers != ModifierKeys.Shift)

if (txt.Text.Contains(".") && e.Key == Key.OemPeriod)

e.Handled = true;
return;

e.Handled = false;

else

e.Handled = true;



你所看到的从右往左显示只不过是右对齐而已,设置文本框(TextBox)的HorizontalContentAlignment="Right"
参考技术B //如果只是按下数字按钮:
string str = TextBox1.Text.Trim().AppendText( "数字 " );
//重新赋给textbox
TextBox1.Text = str;
//如果按下了加、减、乘、除 按钮,记录这时的数字
string n1 = TextBox1.Text.Trim();

如何在没有焦点的情况下突出显示/选择 wpf 文本框中的文本?

【中文标题】如何在没有焦点的情况下突出显示/选择 wpf 文本框中的文本?【英文标题】:how to highlight/select text in a wpf textbox without focus? 【发布时间】:2012-08-19 03:56:27 【问题描述】:

我想在 wpf 文本框中突出显示选定的文本,而文本框没有聚焦。在我的应用程序中,我的文本框永远不会获得焦点,并且每个键输入都是手动完成的。

我想知道是否有办法在文本框未聚焦时突出显示选定的文本?

任何帮助将不胜感激!

【问题讨论】:

如果文本框永远无法获得焦点,您如何手动键入? How to keep WPF TextBox selection when not focused? 的可能重复项 @Blam : 我设置了文本框的文本。 @H.B. : 我已经查过了。问题是我的文本框永远不会得到焦点。您提到的线程中的解决方案是针对失去焦点的文本框,我从来没有得到一个,所以它永远不会引发 lostFocus() 事件。我可能需要一种方法来绕过选择和突出显示文本的正常过程。 @user1340852:虽然这是同一个问题,但就重复而言,这才是最重要的。 【参考方案1】:

你可以使用下面的代码来达到你的目的:

textBoxToHighlight.Focus();
textBoxToHighlight.Select(0, textBoxToHighlight.Text.Length);

希望这会有所帮助。

【讨论】:

这是有焦点的,但问题是 - “没有焦点”【参考方案2】:

另一种选择:

textBoxName.SelectAll();

【讨论】:

【参考方案3】:

我真的很喜欢这种类型的选择:

textbox.Focus();
textbox.SelectionStart = 0;
textbox.SelectionLength = textbox.Text.Lenght;

【讨论】:

以上是关于wpf 文本框问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有焦点的情况下突出显示/选择 wpf 文本框中的文本?

WPF - 根据另一个文本框值更改文本框值[重复]

WPF文本框,无法编辑文本......即将放弃

可以更改为 C# WPF 中概述的文本框或文本字段

WPF 从列表框中拖动项目并放入文本框中

检查是不是有任何文本框为空 wpf