在我當前的項目中,我製作了一個便箋式應用程序,其中用戶可以打開具有相同表單的多個實例。然而,我想知道在C#中是否有方法可以創建form1的新實例,但是新窗體的標題/文本/標題是form2。創建form1的新實例並更改該表單屬性
如果這是可以實現的,我希望推動如何編寫我的應用程序的部分的正確方向。
謝謝大家。
- 編輯 -
我意識到我忘了補充一些重要的東西:
我需要能夠計算出有多少實例是當前打開的。從那裏我將爲表單文本添加+1。
在我當前的項目中,我製作了一個便箋式應用程序,其中用戶可以打開具有相同表單的多個實例。然而,我想知道在C#中是否有方法可以創建form1的新實例,但是新窗體的標題/文本/標題是form2。創建form1的新實例並更改該表單屬性
如果這是可以實現的,我希望推動如何編寫我的應用程序的部分的正確方向。
謝謝大家。
- 編輯 -
我意識到我忘了補充一些重要的東西:
我需要能夠計算出有多少實例是當前打開的。從那裏我將爲表單文本添加+1。
嘗試從類訪問的形式屬性:
MyForm newForm = new MyForm();
newForm.Show();
newForm.Text = "Form2";
或呼叫當前形式的方法來設置文本:
// In MyForm
public void SetTitle(string text)
{
this.Text = text;
}
// Call the Method
MyForm newForm = new MyForm();
newForm.Show();
newForm.SetTitle("Form2");
希望這有助於!
要檢查的形式量打開,你可以嘗試這樣的:
// In MyForm
private int counter = 1;
public void Counter(int count)
{
counter = count;
}
// Example
MyForm newForm = new MyForm();
counter++;
newForm.Counter(counter);
它可能會產生混淆使用,但可以說你有打開的相同形式的新實例的按鈕。由於您有一個表格在開始counter = 1
處打開。每次點擊該按鈕時,它會發送counter++
或2
到表單。如果你打開另一個表單,它會發送counter = 3
等等。可能有更好的方法來做到這一點,但我不確定。
使用一個靜態字段來保持已打開多少個實例的計數,並使用它來設置表單的標題。
這是一個草圖;如果你想要不同的行爲,你可以跳過OnFormClosed覆蓋:
public class TheFormClass : Form
{
private static int _openCount = 0;
protected override void OnLoad(EventArgs e)
{
_openCount++;
base.OnLoad(e);
this.Text = "Form" + _openCount;
}
protected override void OnFormClosed(FormClosedEventArgs e)
{
_openCount--;
base.OnFormClosed(e);
}
}
是的,謝謝你的快速回答。第一種方法很完美。只是一個問題。有沒有一種方法可以讓我統計我的應用程序運行的總表單數量? – Vlad781 2012-07-20 06:00:45
我編輯了帖子。 – 3aw5TZetdf 2012-07-20 06:04:07
Application.OpenForms可以幫助你。請記住:http://stackoverflow.com/questions/3751554/application-openforms-count-0-always – 2012-07-20 06:04:58