当c#中文本发生变化时,如何抑制对文本框及其形式的聚焦

本文关键字:文本 聚焦 何抑制 中文 变化 | 更新日期: 2023-09-27 17:49:23

我有一个表单(Form1)和一个富文本框(RichBox1)里面。

我有很多对象,可以在RichBox1中附加文本和其他两种形式(Form2, Form3)

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

我已经看了所有的属性,但找不到它。文本框的. canfocus不能设置为false,因为它只能读取。什么好主意吗?

感谢

编辑:我说:

this.GotFocus += new EventHandler(Form1_GotFocus);

此事件根本不触发。

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

编辑2:

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

编辑3。

补充道:this.Activated += new EventHandler(Form1_GotFocus);

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

当c#中文本发生变化时,如何抑制对文本框及其形式的聚焦

时,会出现这种行为

尝试使用表单激活事件。虽然我做了一个小的测试用例,我不能重复你的问题,如果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();
}