我有一個form1(運行程序)和form2(這是一個供用戶輸入的表單)。 Form2具有清除用戶輸入的功能(文本框,複選框,組合框,它清除它們)。如何調用只接受另一種形式的參數的方法?
功能如下:
public void CleartheForm(Control groupofcontrols)
{
foreach (Control c in groupofcontrols.Controls)
{
if (c is TextBox)
{
((TextBox)c).Clear();
}
if (c.HasChildren)
{
CleartheForm(c);
}
if (c is CheckBox)
{
((CheckBox)c).Checked = false;
}
label3.Text = "";
comboBox1.SelectedIndex = -1;
comboBox2.SelectedIndex = -1;
}
}
這工作對自己。在我的主要形式,我需要調用這個函數,它應該是這樣的:
我做窗口2的實例調用Inputform然後:
private void Addrecord_Click(object sender, EventArgs e)
{
Inputform.ShowDialog();
if(Inputform.Addedrecord == true)
{
Inputform.Addrecord();
Inputform.CleartheForm(WHAT DO I PUT IN HERE??);
}
}
所以,一旦記錄已添加的輸入表單自行清除並準備添加另一條記錄。
問題是如上,我在那裏放什麼?我如何從form1中調用位於form2中的Inputform.CleartheForm()
中的groupofcontrols?我試圖在Form2的頂部創建一個公共Control對象,然後將我的Form1保留爲Inputform.CleartheForm(Control groupofcontorls)
,但之後它說我沒有對象引用。如果我把它留空,它說Inputform.CleartheForm();
不需要0爭論。
但他還需要使該方法遞歸,因爲他現在的人會在任何嵌套控件突破。 – Vedran 2013-05-14 07:55:56
@Vedran但是它調用*遞歸的那個(即在OP中接受'Control'參數的那個) – 2013-05-14 08:29:48
我得到它的工作,謝謝^^ – csharpnewbie 2013-05-14 08:45:23