怎么样让通用对话框显示窗口最前面?
注:API函数GetForegroundWindow用来获得前台窗口的句柄,这里的“前台窗口”是指前台应用程序的活动窗口
类ForegroundWindow继承了框架提供的IWin32Window接口,并定义了一个静态的IWin32Window属性Instance,用来获得前台窗口的句柄。
public class ForegroundWindow : IWin32Window
{ private static ForegroundWindow _window = new ForegroundWindow(); private ForegroundWindow(){}public static IWin32Window Instance
{ get { return _window; } }[DllImport("user32.dll")]
private static extern IntPtr GetForegroundWindow();IntPtr IWin32Window.Handle
{ get { return GetForegroundWindow(); } } public class Example1{
public void SaveFile(string str_filepath)
{
SaveFileDialog openfile=new SaveFileDialog();
openfile.Title="请输入RTF文件名"; openfile.Filter="word文档(*.rtf)|*.rtf"; openfile.FilterIndex=0; openfile.ValidateNames=true; openfile.InitialDirectory= str_filepath; openfile.ShowDialog(ForegroundWindow.Instance);}
}