如何在C#中进行文本更改时抑制焦点到TextBox及其表单?

时间:2012-12-23 01:44:10

标签: c# textbox focus richtextbox

我的内部有一个表单(Form1)和一个富文本框(RichBox1)。

我有很多可以在RichBox1附加文字的对象 和其他两种表格(Form2Form3

当发生这种情况时,如果应用程序没有焦点(比如用户正在使用计算器) 当用户通过选择Form2将焦点设置回应用程序时, Form1如果RichBox1在用户未使用时收到新文字,则会先获得焦点。

我查看了所有属性但找不到它。 a。文本框的.CanFocus不能设置为false,因为它只能被读取。有什么想法吗?

由于

编辑: 我添加了:

this.GotFocus += new EventHandler(Form1_GotFocus);

此事件根本不会发生。

我在Form1中有一大堆其他控件,一些标签,按钮和菜单条。我不明白是什么导致了这种行为。

编辑2:

也许有人可以建议在Form1中加注一个事件,以便开始跟踪造成这种情况的原因。我假设它与RichBox1有关,但现在不太确定。

编辑3。

添加了: this.Activated += new EventHandler(Form1_GotFocus);

当我执行上述操作时,此事件不会触发。也许这意味着Form2失去焦点,而不是Form1被激活?另外值得注意的是,当我右键单击Form2

时,会出现此行为

1 个答案:

答案 0 :(得分:0)

尝试使用Form Activated事件。虽然我做了一个小测试用例但我不能复制你的问题,如果RichTextBox的文本更改我仍然可以选择Form2,请确保没有定时器或事件设置焦点到RichTextBox

public Form1()
{
    InitializeComponent();
    this.Activated += new EventHandler(Form1_Activated);  
}

void Form1_Activated(object sender, EventArgs e)
{
    //Set the Focus to the Control that you want
    button1.Focus();
}