DialogResult nRet = MessageBox.Show(this,"有升级包是否现在升级","提示信息",
MessageBoxButtons.OKCancel ,MessageBoxIcon.Information);
if(nRet == DialogResult.OK )能显示在最前面但如果点击后面窗体会切换掉
能否让用户先处理完

解决方案 »

  1.   

    MessageBox.Show(this,
    ===========
    把this换成null试试看。
      

  2.   

    你可以用自己的窗口代替MessageBox,然后设置窗体的属性,让其TopMost如果非得使用MessageBox,你可以参考http://blog.csdn.net/lovefootball/archive/2007/09/14/1784882.aspx在WndProcEvent事件中调用SetWindowPos这个API
    private const int HWND_TOPMOST = -1;
    private const int SWP_SHOWWINDOW = 40;RECT rectDlg = new RECT();
    GetWindowRect(m.LParam, ref rectDlg);
    SetWindowPos(m.LParam, HWND_TOPMOST, 0, 0, rectDlg.right - rectDlg.left, rectDlg.top - rectDlg.bottom, 40);[DllImport("user32.dll")]
    private static extern bool SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int X, int Y, int cx, int cy, int uFlags);[DllImport("user32)]
    public static extern int GetWindowRect(IntPtr hWnd, ref RECT rect);