【问题标题】:Call a form in another form with button click [closed]使用按钮单击以另一种形式调用表单[关闭]
【发布时间】:2019-05-07 01:02:28
【问题描述】:

我想通过单击另一种形式的按钮来打开 FrmNovaRegra。 我已经尝试了基本的“Dim form as new FrmNovaRegra”和“form.show()”,它不起作用,我该如何打开它?我要打开的表单的代码在下一行:

Public Class FrmNovaRegra
    Private regras As BServices.NovaRegra

    'Private MyDictionary As New Dictionary(Of String, List(Of String))


    Public Sub New(ByVal cls As BServices.NovaRegra)

        InitializeComponent()
        Me.regras = cls

    End Sub

【问题讨论】:

  • 你能具体说明它是怎么不工作的吗(是不是崩溃了,它只是没有显示吗?还有什么不正常的事情发生了吗?)另外请在你的Public Sub New 中设置一个断点所以你肯定知道这个表单正在被创建。不要忘记重载中的参数,以防万一。
  • 它说“未为 Public sub New (cls as NovaRegra) 的参数 cls 指定参数
  • 需要传递参数cls

标签: vb.net forms button


【解决方案1】:

您的表单需要它的参数,因为没有其他重载。有很多方法可以纠正这个问题。

如果您有cls As BServices.NovaRegra,您可以使用以下方法创建表单:

Dim form as new FrmNovaRegra(cls)

如果您想即时创建一个新的,这也是可能的:

Dim form as new FrmNovaRegra(New BServices.NovaRegra())

这个新的cls可能也需要一些参数,我对这个类不熟悉。

解决此问题的另一种方法是添加一个不需要参数的新重载,但您的表单看起来需要 cls,所以如果您需要对此的更多解释作为评论,请告诉我。

【讨论】:

  • 我认为这里的主要问题是该项目与计费系统集成,可能存在一些冲突。我已经创建了另一个主题,其中我在项目中工作的checkonClick 项目存在问题,但是当我将它们与此计费软件集成时,此属性不起作用...
  • 您可以尝试通过强制执行Option Explicit OnOption Strict On 来限制此类冲突(至于我,我总是这样设置它们,它为我节省了大量不必要的麻烦)。第二件事可能对您更有帮助:如果您在拨打电话时发生冲突,您可以通过使用这些调用可能发生冲突的完整命名空间来限制它们。每当我怀疑出现意外结果时,这也为我节省了无数问题。
  • 感谢朋友我已经解决了这个问题
猜你喜欢
  • 1970-01-01
  • 2011-09-05
  • 2018-04-22
  • 2012-12-05
  • 1970-01-01
  • 2020-03-14
  • 2015-12-08
  • 1970-01-01
  • 2016-01-30
相关资源
最近更新 更多