私は試した:
Form myForm = new EULA();
myForm.Show();
this.WindowState = FormWindowState.Minimized;
myForm.BringToFront();
myForm.Activate();
myForm.Focus();
このコードはそれを前面に表示しますが、何らかの理由でフォームをクリックしてフォーカスを合わせる必要があります。誰か教えてもらえますか?
フォームが既にフォーカスされている可能性があります。代わりに、フォーム内のコントロール (テキスト ボックスやコンボなど) を選択したいですか?
フォームの load メソッドで次のコードを使用します。
private void Form_Load(object sender, System.EventArgs e)
{
controlName.Select();
}
こんにちはleaf68は私のコードに従ってください。それを理解してみてください:)
私たちが持っているMainForm
としましょうLoginForm
私たちのプロジェクトでは、->アプリケーションのメイン エントリ ポイントStatic Class
を呼び出します。プロジェクトのデフォルト クラスとして。Program
run
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LoginForm());
if (LoginForm._loginSuccess)
{
var m = new MainForm();
Application.Run(m);
}
else
Application.Exit();
}
public static bool UserLogin() //Add some parameter
{
//You Logic here
LoginForm._loginSuccess = true;
return LoginForm._loginSuccess;
}
}
これが私たちのLoginForm
コードです
public partial class LoginForm : Form
{
public LoginForm()
{
InitializeComponent();
}
public static bool _loginSuccess { get; set; }
public event EventHandler Login;
private void loginButton_Click(object sender, EventArgs e)
{
if (Program.UserLogin())
{
Close();
Dispose();
if (Application.OpenForms.Count > 0)
if (Application.OpenForms["MainForm"].Name == "MainForm")
{
Application.OpenForms["MainForm"].WindowState = FormWindowState.Normal;
Application.OpenForms["MainForm"].Enabled = true;
}
if (Login != null)
Login(this, EventArgs.Empty);
}
}
}
次に、成功したと仮定すると、Login
これMainForm
が私たちのMainForm
コードです
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void logOutButton_Click(object sender, EventArgs e)
{
//Hide();
Enabled = false;
WindowState = FormWindowState.Minimized;
var f = new LoginForm();
f.Login += loginShow;
f.Show();
f.Activate();
}
private void loginShow(object sender, EventArgs args)
{
Show();
}
}
お役に立てば幸いです:)
フォームが表示されていないため、トレイ アイコンのみが表示されます。
私はただ使用します:
this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Normal;
this.Activate();
上記の順番で。プログラムが前面に出てアクティブ化されます。つまり、入力するとアクティブなフィールドに実際に書き込みます。
これは機能します: