好吧,這是事情,我有調用OrderForm.Show()的MainForm。 現在我想用一個按鈕在MainForm中調用公共函數,但我不能。如何從子窗體中引用窗體?
這裏是MainForm中的代碼:
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
// Main form
private void MainFrm_Load(object sender, EventArgs e)
{
FormOrder frmO = new FormOrder();
frmO.Show();
}
public void Refresh()
{
// some action
}
}
而在OrderForm我這樣做:
public partial class FormOrder : Form
{
public FormOrder()
{
InitializeComponent();
}
private void ShowForm()
{
// some action
}
private void btnCopy_Click(object sender, EventArgs e)
{
Form form = Form.ActiveForm as frmMain;
if (form != null)
{
form.Refresh();
}
}
}
所以在節目我跑MainForm.Show(),然後加載OrderForm。然後當我點擊複製按鈕時,它將在MainForm中運行公共功能刷新。但我不能讓它工作,它總是返回null:
Form form = Form.ActiveForm as frmMain;
所以我怎樣才能真正得到有效形式,是另一種解決方案?或者我弄錯了? 在此先感謝您的答案:)
你應該改變標題。你想從一個子表單引用一個表單。主要的形式不是在你想引用它的時候的活動形式(在框架中)。 – TheBlastOne