在C#winform中如何关闭指定窗体?

时间:2021-12-25 20:38:09
请问大吓们,在C#winform中如何关闭指定窗体呢,窗体之间不是父子关系,感激不尽.
或者怎样实现上一页与下一页功能?

8 个解决方案

#1


sendmessage

#2


同一进程下
可窗体实例.close

不同进程下可以 通过api找到window的进程id,killprocess

#3


Application.OpenForms["窗体名字"].Close();
主窗体不能被关闭,只能Hide()。

#4


引用 3 楼 dalmeeme 的回复:
Application.OpenForms["窗体名字"].Close();
主窗体不能被关闭,只能Hide()。

学习下  

#5


百度下都有呀!

#6


引用 3 楼 dalmeeme 的回复:
Application.OpenForms["窗体名字"].Close();
主窗体不能被关闭,只能Hide()。


路过,瞧一眼就学会

#7


API 行不? 



DllImport( "user32.dll ")] 
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

假设有两个窗体窗体标题为Form1和Form2,这两个窗体不是父子,然后Form1中调用这个函数:

IntPtr hWnd = FindWindow(null, "Form2");//得到窗口Form2的句柄
Form form=(Form)Form.FromHandle(hWnd);
hWnd.Close()
我也不知道最佳策略 呵呵 

#8


Form frm = Application.OpenForms[FormID.Name];

if(frm!=null)
{
   frm.Close();
}

#1


sendmessage

#2


同一进程下
可窗体实例.close

不同进程下可以 通过api找到window的进程id,killprocess

#3


Application.OpenForms["窗体名字"].Close();
主窗体不能被关闭,只能Hide()。

#4


引用 3 楼 dalmeeme 的回复:
Application.OpenForms["窗体名字"].Close();
主窗体不能被关闭,只能Hide()。

学习下  

#5


百度下都有呀!

#6


引用 3 楼 dalmeeme 的回复:
Application.OpenForms["窗体名字"].Close();
主窗体不能被关闭,只能Hide()。


路过,瞧一眼就学会

#7


API 行不? 



DllImport( "user32.dll ")] 
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

假设有两个窗体窗体标题为Form1和Form2,这两个窗体不是父子,然后Form1中调用这个函数:

IntPtr hWnd = FindWindow(null, "Form2");//得到窗口Form2的句柄
Form form=(Form)Form.FromHandle(hWnd);
hWnd.Close()
我也不知道最佳策略 呵呵 

#8


Form frm = Application.OpenForms[FormID.Name];

if(frm!=null)
{
   frm.Close();
}