我有一個Visual C#2010應用程序,它有一個名爲MainWnd
的主窗體以及其他工具窗口和對話框。我希望其他工具窗口能夠與主窗體「交談」,並調用其方法。但是這需要一個MainWnd
的實例,並且由於在任何給定時間只會創建這些表單中的一個,所以我沒有理由列舉MainWnd
的所有實例或查找第一個。所以我想我的主要申請表MainWnd
是一個單身人士,所以其他窗口可以很容易地從它調用代碼。我可以製作一個單獨的表單嗎?
這裏是主要形式的代碼,我想提出一個單身:
using System;
using System.ComponentModel;
using System.Windows.Forms;
namespace MyLittleApp
{
public partial class MainWnd : Form
{
public MainWnd()
{
InitializeComponent();
}
public void SayHello()
{
MessageBox.Show("Hello World!");
// In reality, code that manipulates controls on the form
// would go here. So this method cannot simply be made static.
}
}
}
我期待能夠調用SayHello()
從另一種形式,簡單地寫:
MainWnd.SayHello();
我怎麼能做到這一點?
你不能把它作爲一個靜態的公共方法,然後做你在說什麼? – ryadavilli
因爲它被稱爲MainWnd我期望,表單打開其他形式。在這種情況下,您可以在您的子表單上使用事件,並在此處註冊來自MainWnd的事件接收器。 – TGlatzer
@ryadavilli正如我發佈的代碼中的評論所說,該方法操縱表單中的對象,所以它必須有一個實例,因此它不能僅僅是靜態的。 –