既然C++開發已經成爲我的第二天性,我是否必須從頭開始用C#?如何創建一個與C#中的Windows窗體相關的類?
自從Visual Studio開始以來,有一種簡單的方法可以在資源文件中描述對話框(現稱爲窗體)的形狀,然後使用嚮導創建相應的C++代碼。我記得在MFC中,用你想要的所有組件創建一個自定義對話框,然後是所有相關的代碼幾乎是一件容易的事情。
如果我有一個C#應用程序,我想根據用戶的菜單選擇將多種形式帶到屏幕上,我該如何創建一個與Windows窗體關聯的類?
既然C++開發已經成爲我的第二天性,我是否必須從頭開始用C#?如何創建一個與C#中的Windows窗體相關的類?
自從Visual Studio開始以來,有一種簡單的方法可以在資源文件中描述對話框(現稱爲窗體)的形狀,然後使用嚮導創建相應的C++代碼。我記得在MFC中,用你想要的所有組件創建一個自定義對話框,然後是所有相關的代碼幾乎是一件容易的事情。
如果我有一個C#應用程序,我想根據用戶的菜單選擇將多種形式帶到屏幕上,我該如何創建一個與Windows窗體關聯的類?
如果您使用設計器,那麼它會爲您生成C#類;所以,如果有一個名爲UserOptionsForm
形式,你應該只需要做的是這樣的:
new UserOptionsForm().Show();
或一個模式彈出:
using(UserOptionsForm form = new UserOptionsForm()) {
form.ShowDialog(); // returns result code (OK/cancel/etc)
}
在.net(C#,VB.Net,或什麼的。你使用的是網絡語言),表單是類,不一定涉及資源文件。創建形式爲繼承Form類一樣簡單:
public class MyWindow : Form
{
}
現在,您可以把它帶到屏幕:
using (var myWindow = new MyWindow())
{
myWindow.Show();
}
窗口將是相當空的,直到你添加一些控件到它:
public class MyWindow : Form
{
public MyWindow()
{
var button = new Button();
button.Text = "Click me";
Controls.Add(button);
}
}
正如你所看到的,在WinForms窗體和控件中都是使用代碼構建的。現在手工編寫這樣的表單很乏味,所以在Visual Studio中使用WinForms Designer。它會爲你生成代碼。
這比我想象的要容易。我要彈出如下對話框: form.ShowDialog();一旦我有了對話框,就像我想要的一樣,完成一個「確定」和「取消」按鈕,我可以在這些事件中編輯代碼,我該如何使用C#代碼關閉對話框? – xarzu 2010-04-19 10:43:47