2012-12-23 36 views
-1

我在裏面有一個表格(Form1)和一個富文本框(RichBox1)。如何禁止在TextBox中更改焦點到TextBox及其形式?

我有很多的對象,可以附加在RichBox1 和其他兩種形式(Form2Form3

發生這種情況時,如果應用程序沒有焦點的文本(比如用戶使用計算器) 當用戶通過選擇Form2, Form1將焦點重新設置爲應用程序,如果RichBox1在用戶未使用時獲得新文本,則會首先獲得焦點。

我看了所有屬性並找不到它。文本框的.FanFocus不能設置爲false,因爲它只能被讀取。有任何想法嗎?

感謝

編輯: 我加:

this.GotFocus += new EventHandler(Form1_GotFocus);

此事件不火的。

我有一大堆Form1其他控件,一些標籤,按鈕和菜單條。我不明白是什麼導致了這種行爲。

編輯2:

或許有人可以提出一個事件Form1募集開始跟蹤是什麼原因造成這一點。我假設它與RichBox1有關,但現在還不確定。

編輯3.

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

當我做以上這不會觸發事件。也許這意味着Form2失去了重點,而不是Form1得到激活?同樣值得注意的是,當我右鍵點擊時,出現這種行爲Form2

+0

是,對於winforms或WPF? –

+2

通用提示:不要使用諸如「某些其他形式」,「原始形式」等短語,而只需使用簡單的1,2,3來命名問題的粒子,並顯示事情的進展情況,如列表中所示,逐行,然後相同的事情應該去。 – SimpleVar

+0

@MarcelGosselin winforms。 –

回答

0

嘗試使用Form Activated事件。雖然我做了一個小測試的情況下,我不能重複你的問題,如果RichTextBox中的文本改變我仍然可以選擇窗體2,請確保你沒有定時器或事件將焦點設置到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(); 
}