这个问题是关于VB.NET的。我对这个问题很新手,所以请原谅我,如果你觉得这个问题不是什么疯狂的事情。无论如何,我一直在创建一个简单的Windows地址簿表单应用程序。我们都知道一个人可以拥有一个或多个地址,其中一对多关系成立。所以,我的应用程序还必须能够编辑这些地址中的每一个(顺便说一下,我的应用程序使用Access数据库,这真的很糟糕,但这是我的任务的一部分),我已经想过使用一个控制数组(只是就像在PHP中,但它显然从未在.NET中工作过)来编辑它们。我该怎么做呢?我已经浏览了网络上的每个论坛,但似乎无法找到足够的答案。
谢谢!
答案 0 :(得分:6)
你唯一要做的就是在表单中创建一个你需要的控件的新实例,让我们称之为EditControl,并将控件的新实例添加到FlowLayoutPanel控件。
这样的事情:
dim tmpC as new EditControl()
containerControl.Controls.Add(tmpC)
这样,FlowLayoutPanel控件将显示您在表单上添加的EditControls。
假设containerControl被声明为FlowLayoutPanel。
但是,如果可以,最好的方法是使用连接到数据集的网格控件。
答案 1 :(得分:2)
我不确定我理解这个问题。你究竟想做什么?你有什么?您已尝试过什么不起作用?
仅通过标题判断,您希望在运行时向表单添加另一个控件。这很简单。
首先,您需要创建一个控件类的实例。例如,TextBox
类。您可以通过声明类型为TextBox
的变量并调用构造函数来执行此操作:
Dim txt As New TextBox()
第二次,您可能想要设置刚刚创建的文本框的某些属性。这些属性可以使用“属性”窗口在“设计视图”中设置。例如:
txt.Text = "Default text"
第三次,您需要将该控件添加到表单的Controls
collection。这就是控件实际显示在窗体上的原因。 (另请注意,您不仅可以将控件添加到Form
。您可以将其添加到任何容器样式控件,例如Panel
或{ {1}}。)例如:
GroupBox
但是,由于您正在创建一个与Access绑定的基于数据的应用程序,因此您应该考虑使用data-bound controls,这会让您的生活更加简单。他们可以自动将其内容与数据库中保存的信息同步。
答案 2 :(得分:0)
您不需要控制数组甚至以编程方式添加它们,您只需要绑定数据源属性/字段/列/表单上的控件,并具有滚动或分页地址记录的机制。如何执行此操作将在很大程度上取决于您希望向用户呈现的UI类型。
答案 3 :(得分:0)
看看这个。
http://shashwats-softwares.com/2016/01/29/creating-controls-at-runtime-in-vb-net/
dim btn as new system.windows.forms.buttons
btn.text="Click Me"
Me.controls.add(btn)