如何将 DialogResult 结果放在前面
How to bring DialogResult result on front
如何把DialogResult放在前面。
下面是我的表格。我想把它放在所有其他应用程序的前面 运行。 但它在调试模式下工作但在"Run without debug mode"下不工作。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace XYZ
{
public partial class Form2 : Form
{
[return: MarshalAs(UnmanagedType.Bool)]
[DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern bool SetForegroundWindow(IntPtr hwnd);
public Form2()
{
InitializeComponent();
}
static Form2 MsgBox; static DialogResult result = DialogResult.No;
public static DialogResult Show( /*string Text, string Caption, string btnOK, string btnCancel */)
{
MsgBox = new Form2();
MsgBox.FormBorderStyle = FormBorderStyle.None;
result = DialogResult.No;
MsgBox.TopMost = true;
try
{
SetForegroundWindow(MsgBox.Handle);
System.Media.SystemSounds.Beep.Play();
MsgBox.TopLevel = true;
MsgBox.ShowDialog(MsgBox.ParentForm);
}
catch (Exception ex)
{
LogHelper.WriteFatalLog("Show", ex);
}
return result;
}
private void Form2_Load(object sender, EventArgs e)
{
}
private void btnLoginF2_Click(object sender, EventArgs e)
{
Program.username = txtUserNameBtn.Text;
Program.password = txtPassBtn.Text;
result = DialogResult.Yes; MsgBox.Close();
}
}
}
我正在执行如下
try
{
Util.TaskHide(0);
Util.KillCtrlAltDelete();
Util.KillTaskManager();
// ShowWindow(hwnd,0);
}
catch (Exception ex)
{
// MessageBox.Show(ex.Message);
LogHelper.WriteErrorLog("Hide Kill Manage", ex);
}
Form2.Show();
// Program.mfLogin.Hide();
try
{
Util.TaskHide(1);
Util.EnableCTRLALTDEL();
}
catch (Exception ex2)
{
MessageBox.Show(ex2.Message);
LogHelper.WriteErrorLog("Show Pamper Leave", ex2);
}
按照 here 所述使用 Form 的 Activate()
方法。
在评论中说; 如果这是活动应用程序,则激活表单会将其置于最前面。
希望有所帮助,
如何把DialogResult放在前面。 下面是我的表格。我想把它放在所有其他应用程序的前面 运行。 但它在调试模式下工作但在"Run without debug mode"下不工作。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace XYZ
{
public partial class Form2 : Form
{
[return: MarshalAs(UnmanagedType.Bool)]
[DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern bool SetForegroundWindow(IntPtr hwnd);
public Form2()
{
InitializeComponent();
}
static Form2 MsgBox; static DialogResult result = DialogResult.No;
public static DialogResult Show( /*string Text, string Caption, string btnOK, string btnCancel */)
{
MsgBox = new Form2();
MsgBox.FormBorderStyle = FormBorderStyle.None;
result = DialogResult.No;
MsgBox.TopMost = true;
try
{
SetForegroundWindow(MsgBox.Handle);
System.Media.SystemSounds.Beep.Play();
MsgBox.TopLevel = true;
MsgBox.ShowDialog(MsgBox.ParentForm);
}
catch (Exception ex)
{
LogHelper.WriteFatalLog("Show", ex);
}
return result;
}
private void Form2_Load(object sender, EventArgs e)
{
}
private void btnLoginF2_Click(object sender, EventArgs e)
{
Program.username = txtUserNameBtn.Text;
Program.password = txtPassBtn.Text;
result = DialogResult.Yes; MsgBox.Close();
}
}
}
我正在执行如下
try
{
Util.TaskHide(0);
Util.KillCtrlAltDelete();
Util.KillTaskManager();
// ShowWindow(hwnd,0);
}
catch (Exception ex)
{
// MessageBox.Show(ex.Message);
LogHelper.WriteErrorLog("Hide Kill Manage", ex);
}
Form2.Show();
// Program.mfLogin.Hide();
try
{
Util.TaskHide(1);
Util.EnableCTRLALTDEL();
}
catch (Exception ex2)
{
MessageBox.Show(ex2.Message);
LogHelper.WriteErrorLog("Show Pamper Leave", ex2);
}
按照 here 所述使用 Form 的 Activate()
方法。
在评论中说; 如果这是活动应用程序,则激活表单会将其置于最前面。
希望有所帮助,