ли Form.Activated
что вы после этого?
Моя причина предположить это, а не GotFocus
является то, что форма сама не получает фокус, если фокус перемещается из одной формы в элемент управления в другой форме. Вот пример приложение:
using System;
using System.Drawing;
using System.Windows.Forms;
class Test
{
static void Main()
{
TextBox tb = new TextBox();
Button button = new Button
{
Location = new Point(0, 30),
Text = "New form"
};
button.Click += (sender, args) =>
{
string name = tb.Text;
Form f = new Form();
f.Controls.Add(new Label { Text = name });
f.Activated += (s, a) => Console.WriteLine("Activated: " + name);
f.GotFocus += (s, a) => Console.WriteLine("GotFocus: " + name);
f.Show();
f.Controls.Add(new TextBox { Location = new Point(0, 30) });
};
Form master = new Form { Controls = { tb, button } };
Application.Run(master);
}
}
(Построить это как консольное приложение - вот где выход идет.)
Положите некоторое имя в текстовом поле и нажмите кнопку «новую форму» - то сделать это снова. Теперь щелкните между текстовыми полями в новой форме - вы увидите, что событие Activated
запускается, но не GotFocus
.
Вы переключаетесь между этими двумя формами один за другим, используя кнопку на каждой форме, которая открывает другую? – A9S6
Если вы открываете/показываете форму с помощью ShowDialog() каждый раз, то можно использовать событие Form_Load. Как вы переключаетесь между формами? – A9S6