创建多个表单GUI
我正在c#中开发一个非常基本的应用程序Windows Form Application,它将值插入到SQL数据库中。 我有四种不同的forms
- 一个用于输入客户详细信息
- 一个用于输入任何交易细节
- 一个用于分别搜索客户/交易。
将所有四种forms联系在一起的最佳方式是什么? 我只是进入C#所以最基本的方式是理想的。
我认为它在我脑海中工作的方式是你运行程序并最终在一个屏幕上显示四个相应表格的四个按钮。 当您按下按钮时,会打开一个单独的窗口,显示插入表单。 然后,您可以关闭表单以返回主开始屏幕
C#中的基本代码是什么? 例如,可以说5种不同的布局
-
Main
(包含按钮) -
TransactionEntry
-
AddressEntry
-
TransactionSearch
-
AddressSearch
好的,这是我将如何做的一个例子。 在按钮单击事件的主窗体上:
frmSecondForm secondForm = new frmSecondForm(this); //"this" is passing the main form to the second form to be able to control the main form... secondForm.Show(); this.Hide();
一个你的Second Forms构造函数代码:
Form frmHome; frmSecondForm(Form callingForm) //requires a calling form to control from this form { Initialize(); //Already here frmHome = callingForm as frmMain; }
然后在第二个表格的关闭取消隐藏主要表格:
frmSecondForm_FormClosing() { frmHome.Show(); }
总而言之,如果您需要在表单之间传递数据,只需将其作为参数添加到第二个表单上。
同样,我会考虑将您的数据集合放入存储库包(文件夹)和类,然后创建一个User.cs类,它将保存您保存在数据库中的所有信息。
提示:右键单击解决方案资源管理器中的顶级项目,然后转到新建 – >文件夹。 将其命名为Repo。 右键单击该文件夹,然后转到New – > Class并将其命名为UserRepo。 在这里构建函数来从数据库中收集数据。
在主窗体的构造函数区域中,调用类(repo)。
private Repo.UserRepo userRepo; frmMain_FormLoad() { userRepo = new Repo.UserRepo(); }
然后在登录按钮上单击:
private button1_ClickEvent() { if(userRepo.isValidLogin(userNameText, passwordText)) { //Do stuff } }
for userRepo.isValidLogin()
public bool isValidLogin(String username, String password) { bool isValid = false; //Write up data code return isValid; }
从Main
表单使用例如:
TransactionEntry trans = new TransactionEntry(); trans.ShowDialog();
.ShowDialog()
将显示新表单,但将暂停在Main
表单上执行的任何代码,直到您关闭它
(这假设您的表单都在同一个解决方案中)
您可以尝试MDI (多文档界面)方式,这是一个很好的教程: http : //www.dreamincode.net/forums/topic/57601-using-mdi-in-c%23/