private void Button_Click_1(object sender, EventArgs e)。
{
Form2.form = new Form2();
form.Show()。
當你點擊兩次按鈕時,會彈出2個表單,我怎樣才能使它在你點擊兩次按鈕時,擺脫已經打開的表單,單獨打開表單呢?
我想要的例子:
我想要的實體
我想要的示例:
點擊一次按鈕,使Form2打開
。
點擊兩次按鈕,使原來的 Form2 關閉,并單獨打開另一個 Form2。
實際發生的情況:
點擊一次按鈕,使Form2打開
。
點擊兩次按鈕,原來的Form2仍然打開,并打開另一個Form2
uj5u.com熱心網友回復:
你只需要回圈瀏覽每個打開的表單,檢查表單的名稱是否相同。試試下面的方法:
foreach(Form frm in Application.OpenForms)
{
if (frm.Name == "form2") //Whatever your form actual name is new Form2();
form2.Show()。
uj5u.com熱心網友回復:
你可以建立一個簡單的方法來驗證你提供的一個型別的表單實體是否存在:如果存在,就關閉當前的實體并生成一個相同型別的新實體:
private void OpenNew< T>() where T : 表格, new())
{
var instance = Application.OpenForms.OfType<T>().FirstOrDefault();
if (instance != null) instance.Close()。
new T().Show()。
假設你只用一個特定的Button來生成這個Type的實體。
如果由于某種原因,該型別的實體可能不止一個,請回圈使用Application.OpenForms.OfType<T>()回傳的集合( .ToArray()以避免...嗯,不試試吧):
private void OpenNew<。 T>() where T : 表格, new())
{
foreach (var instance in Application.OpenForms.OfType<T>().ToArray()) {
instance.Close()。
}
new T().Show()。
}
=> 你也可以像這樣回圈收集:
Application.OpenForms.OfType<T>().ToList().ForEach(f => f.Close())。
你可以呼叫這些方法中的任何一個(在你的環境中使用你喜歡的那個:你可能需要在顯示一個新的,總是單一的,實體或許多新的實體之前做一些其他的事情),例如:
OpenNew<Form2> ()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/321125.html
標籤:
上一篇:import*和fromtkinterimportmessagebox的區別?
下一篇:教你搭建去中心化交易所(原創)
