创建多个表单GUI

时间:2013-09-05 12:39:58

标签: c# forms user-interface

我正在c#中开发一个非常基本的应用程序Windows Form Application,它将值插入到SQL数据库中。 我有四种不同的表格

  • 一个用于输入客户详细信息
  • 一个用于输入任何交易细节
  • 分别用于搜索客户/交易。

将所有四种表格链接在一起的最佳方式是什么?我只是进入C#所以最基本的方式是理想的。

我看到它的工作方式是你运行程序并最终在一个屏幕上显示四个相应表格的四个按钮。当您按下按钮时,会打开一个单独的窗口,显示插入表单。然后,您可以关闭表单以返回主开始屏幕

C#中的基本代码是什么?例如,可以说5种不同的布局是

  • Main(包含按钮)
  • TransactionEntry
  • AddressEntry
  • TransactionSearch
  • AddressSearch

3 个答案:

答案 0 :(得分:3)

好的,这是我将如何做的一个例子。在按钮单击事件的主窗体上:

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();

你的第二个表单构造函数代码:

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。 右键单击该文件夹,然后转到新建 - >将其命名为UserRepo。 在这里构建函数以从数据库中收集数据。

在主表单的构造函数区域中,调用类(repo)。

private Repo.UserRepo userRepo; 
frmMain_FormLoad()
{
    userRepo = new Repo.UserRepo();
}

然后在登录按钮上单击:

private button1_ClickEvent()
{
    if(userRepo.isValidLogin(userNameText, passwordText))
    {
        //Do stuff
    }
}

用于userRepo.isValidLogin()

public bool isValidLogin(String username, String password)
{
    bool isValid = false;
    //Write up data code
    return isValid;
}

答案 1 :(得分:1)

Main表格中使用例如:

TransactionEntry trans = new TransactionEntry();
trans.ShowDialog();

.ShowDialog()将显示新表单,但会暂停在Main表单上执行的任何代码,直到您将其关闭

(这假设您的表格都在同一个解决方案中)

答案 2 :(得分:0)

您可以尝试使用MDI (多文档界面)方式,这是一个很好的教程:http://www.dreamincode.net/forums/topic/57601-using-mdi-in-c%23/