C# 如何在活动形式中获得焦点?
我制作了一个简单的C# 如何在活动形式中获得焦点?,c#,.net,winforms,C#,.net,Winforms,我制作了一个简单的winforms应用程序,它只包含一个表单。问题是,当我单击可执行文件时,我希望激活的表单得到关注,而不是应用程序的多个实例。我试图用这种方法解决这个问题。这只会阻止多个实例,但无法将焦点放在激活的表单上。此代码来自Program.cs文件 namespace Shutdown_Scheduler { static class Program { [STAThread] static void Main() {
winforms
应用程序,它只包含一个表单。问题是,当我单击可执行文件时,我希望激活的表单得到关注,而不是应用程序的多个实例。我试图用这种方法解决这个问题。这只会阻止多个实例,但无法将焦点放在激活的表单上。此代码来自Program.cs
文件
namespace Shutdown_Scheduler
{
static class Program
{
[STAThread]
static void Main()
{
string processName = Process.GetCurrentProcess().ProcessName;
Process[] processCollection = Process.GetProcessesByName(processName);
if (processCollection.Length > 1)
{
Process.GetCurrentProcess().Kill();
ProgramEntry();
}
else
{
ProgramEntry();
}
}
static void ProgramEntry()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
}
此线程将帮助您启用窗体的“带到顶部”属性,使其具有焦点。请参阅此处:。我的答案似乎有些复杂,但它允许激活应用程序的单个实例,即使它的窗口最小化或隐藏(另外,我想展示一种UI自动化方式:)。有关简化方法,请参见Hans Passant的评论。它指向了他对此问题的一个答案:。此线程应该可以帮助您启用窗体的“带到顶部”属性,使其具有焦点。请参阅此处:。我的答案似乎有些复杂,但它允许激活应用程序的单个实例,即使它的窗口最小化或隐藏(另外,我想展示一种UI自动化方式:)。有关简化方法,请参见Hans Passant的评论。它指出了他在这个问题上的一个答案:。