【问题标题】:C# form pass values to another [closed]C#表单将值传递给另一个[关闭]
【发布时间】:2013-07-25 20:47:36
【问题描述】:

我是 C# Winforms 的新手。有很多人问这个问题,但我仍然找不到答案。

我有一个表单可以处理数据并将信息上传到服务器。现在我硬编码了服务器信息。我创建了另一个表单,要求用户输入服务器/登录信息。我想将服务器/登录信息传递给第一个表单。我该怎么做呢? 谢谢

【问题讨论】:

  • 你试过什么,显示一些代码,有人可能会让你朝着正确的方向前进。
  • 您可以将您的用户名/密码变量设置为公开的,当您显示表单时,使用 ShowDialog 并检查 DialogResult.OK。在该检查中,您可以引用变量,例如: loginForm.Username 等 :)
  • 哪个表格调用哪个? (主窗体是否会弹出另一个询问信息的对话框,还是在输入详细信息后请求窗体会打开处理窗体?

标签: c# winforms


【解决方案1】:

传递参数请参考以下MSDN页面:

http://msdn.microsoft.com/en-us/library/0f66670z(v=vs.71).aspx

就我个人而言,我会在一个单独的类中进行数据访问并实现一个public void Login(string user, string password, string server) 方法。然后,第二种形式将利用该类的其他方法来检索和显示数据。

【讨论】:

  • 只是为了澄清您实施公共无效登录功能的建议...您会以第一种形式创建该功能吗?并让第二个表单通过调用登录函数来访问它..我将如何去做这个..比如说
  • 对不起..我不得不去上班..我会考虑这个选项
  • 不要以任何一种形式填写您的数据访问代码。创建第三个类AuthSystem,它包含一个公共bool Login(string user, string pass, string server) 方法。如果您正在进行额外的服务器通信,除了身份验证之外,我将创建另一个类来设置和管理与远程系统的连接。一般来说,每个类都应该有一个相当具体的用途和定义良好的接口,通过它可以与其他类进行交互。谷歌“面向对象的设计实践”以获得更多更多信息。
【解决方案2】:

有多种方法。仅举几例,您可以:

  • 创建一个静态类,以便所有表单都可以访问它
  • 在表单上创建属性并设置值
  • 在您的登录表单上创建一个事件,让您的其他表单注册该事件,并通过自定义 eventargs 类将值传回

【讨论】:

    【解决方案3】:

    我想有很多方法可以做到这一点。

    • publicinternal 表单上的属性
    • 事件
    • publicinternal 方法(在任一表单上,取决于哪个表单将数据发送到哪个表单)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-05
      • 2016-01-06
      相关资源
      最近更新 更多