내가 시도 :양식에 초점을 맞출 수 없습니까?
Form myForm = new EULA();
myForm.Show();
this.WindowState = FormWindowState.Minimized;
myForm.BringToFront();
myForm.Activate();
myForm.Focus();
이 코드는 전면에 제공합니다,하지만 난 여전히 초점을 할 양식 클릭해야 어떤 이유로, 사람이 왜 나를 알 수 있습니까?
내가 시도 :양식에 초점을 맞출 수 없습니까?
Form myForm = new EULA();
myForm.Show();
this.WindowState = FormWindowState.Minimized;
myForm.BringToFront();
myForm.Activate();
myForm.Focus();
이 코드는 전면에 제공합니다,하지만 난 여전히 초점을 할 양식 클릭해야 어떤 이유로, 사람이 왜 나를 알 수 있습니까?
안녕하세요 leaf68 그냥 내 코드를 따릅니다. 응용 프로그램의 주 진입 점> - 그것을 알아낼하려고 :)
하자 우리가 Program
라는 Static Class
이 우리가 우리의 프로젝트에서
MainForm
및 LoginForm
을 말한다.은 기본 클래스로 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;
}
}
다음이 우리 성공적으로 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();
}
}
가 당신을 도와줍니다 :)
을 것을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);
}
}
}
다음 가정 우리의
LoginForm
코드입니다
감사합니다. 이것은 내가 찾고있는 것보다 훨씬 좋습니다. – Oztaco
양식이 보이지 않으므로 트레이 아이콘 만 있습니다.
난 그냥 사용
this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Normal;
this.Activate();
을 위 위해. 프로그램이 앞에오고 활성화됩니다. 즉 입력이 실제로 활성 필드에 쓰는 것을 의미합니다.
이 작동 :
프로그램이 자동으로 나타납니다양식이 이미 집중되어있을 수 있습니다. 대신 텍스트 상자 또는 콤보와 같은 컨트롤을 선택해야 할 수도 있습니다.
나는 폼의 Load 메서드에서이 코드를 사용합니다 :
private void Form_Load(object sender, System.EventArgs e)
{
controlName.Select();
}
myForm 정의 방법을 보여줄 수 있습니까? 에드? –
방금 업데이트했습니다 – Oztaco
왜 최소화 되었습니까? 아마도 http://stackoverflow.com/questions/4849888/how-can-i-bring-a-minimized-modeless-winform-to-its-previously-displayed-positio와 같은 문제가 발생할 것입니다. – holtavolt