我有一个表格,可以提取数据,处理数字,做事情.它完美地运作. 问题是代码是我一次只能访问一个市场,我希望能够访问多个市场. 我可以复制当前的表格x 4让我们说,所以然后我登录后我可
问题是代码是我一次只能访问一个市场,我希望能够访问多个市场.
我可以复制当前的表格x 4让我们说,所以然后我登录后我可以访问4个市场,而不是1.但代码有点密集,我会坚持使用硬连线的多种形式,而不是具有复制初始形式的灵活性,然后访问另一个市场.
实现这一目标的最简单,最快捷的方法是使用一些代码,这些代码可以“弹出”现有表单的克隆,如果可能的话.
如果我明白你的意思,你想要这样的东西(第一部分非常类似于“迈克尔的答案”):形式如下:
Public MarketCOde As String ' whatever it is. Public Sub New(mktCode As String) ' leave this line alone InitializeComponent MarketCOde = mktCode End sub
现在,您表单中的代码需要知道它正在处理哪个市场,它可以引用MarketCode.
创建表单以适应新市场:
Dim frmAsia As New FORMNAME("ASIA")
由于表单将需要市场代码,因此我们在创建表单时传递它.我们不克隆表单,而是创建它的一个实例来处理不同但具体的市场.现在,继续阅读,因为这是坏消息:
如果所有代码都嵌入在表单中,则必须重构它以引用MarketCode而不是现在可能存在的硬编码引用.接下来,您的应用程序需要一种新的方式来启动,因为mainform不会从VB获得关键的MktCode arg.
最好的方法是添加市场选择器表单,并将其作为Project Properties中的启动表单.添加按钮以创建您需要的每个新市场表单:
' this is a new button on a new form to make Market Form instances. Sub button1_click...... ' USE THE ACTUAL FormName from your code! Dim frmCentral as New FORMNAME("CENTRAL") frmCentral.Show End Sub ' each button makes a new market form, Sub button2_click...... ' NOTE: Btn 2! ' the FormName from your code Dim frmAsia as New FORMNAME("ASIA") frmAsia.Show End Sub
一个按钮,一个表单实例名称,一个市场
这也是启动第一个的启动形式.务必将其设置为启动表单在“项目属性”中.