【问题标题】:Reuse Grouped User Control from Control Library in WinForms在 WinForms 中重用控件库中的分组用户控件
【发布时间】:2015-11-29 21:28:05
【问题描述】:

是否可以在WinForm中重用自制库中的UserControl来更改文本框后面的标签文本或字符串名称?

我目前正在学习 WinForms 开发,并希望尽可能多地重用代码。

一个例子:

  1. 登录 1 用户控件
    • 用户名1 = login.usertextbox.text
    • 密码1 = login.passtextbox.text
    • HostName1 = login.hostname.text
  2. 登录 2 用户控件
    • 用户名2 = login.usertextbox.text
    • 密码2 = login.passtextbox.text
    • HostName2 = login.hostname.text
  3. 登录.cs
    • 用户名、密码、主机名(文本框)和下一步按钮

登录用户控件库背后的功能将完全相同,只是登录1和登录2的结果应该将它们的结果存储在表单中的不同字符串等中。

我知道如何重用单个控件,但如果可能的话,我不知道。 login1 的值会存储在 winform 的一组字符串下,next 按钮会隐藏 login1 并显示 login2。

登录用户控件也设计为特定格式,因此除了在后台重用完全相同的代码之外,格式也应该相同,因此我不想使用单个按钮并且必须重新定位每个控件的位置。

如果这不可能,是否有更接近的方法可以让我多次重复使用现有控件?

【问题讨论】:

  • 不是让事情变得更简单,而是让一切变得过于复杂。如果很难理解您要做什么,那么代码可重用性就毫无意义。

标签: c# .net winforms


【解决方案1】:

您可以为您的Login 用户控件创建一些公共属性以公开您需要的一些属性。例如:

Public string UserName 
{
    get
    {
        return UsernameTextBox.Text;
    }
    set
    {
        UsernameTextBox.Text = value;
    }
}

这样您就可以在表单中使用此属性,例如:

this.Login1.UserName

另一种选择是让您的子控件公开并直接访问它们。但建议使用前面的方法。

【讨论】:

  • 如果帖子是您要找的,或者您对答案有任何疑问,请告诉我:)
  • 当您知道如何操作时,事情会变得如此简单,真是难以置信,感谢一百万。它奏效了 :) 你知道开发 WinForms 的任何好的资源吗? CodeProject 和 MSDN 等适用于特定的事情,但我发现有一本书专门用于 winform 开发,但它是在 2003 年创建的,我找不到任何最近的东西 :( 我正在寻找最佳实践。
  • 不客气 :) 一开始你可以看看winforms tag page中的资源
猜你喜欢
  • 2012-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-05
  • 1970-01-01
  • 2010-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多