2

我正在用 c# 开发一个非常基本的应用程序 Windows 窗体应用程序,它将值插入 SQL 数据库。我有四个单独的表格

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

将所有四种形式联系在一起的最佳方式是什么?我才刚刚进入 C#,所以最基本的方法可能是理想的。

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

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

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

3 回答 3

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

一个您的 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 类来保存您保存在数据库中的所有信息。

提示:右键单击解决方案资源管理器中的顶级项目,然后转到新建 -> 文件夹。将其命名为回购。右键单击该文件夹并转到 New -> Class 并将其命名为 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;
}
于 2013-10-08T22:55:47.017 回答
1

Main表格使用例如:

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

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

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

于 2013-09-05T12:54:56.337 回答
0

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

于 2013-09-05T12:46:52.537 回答