[英]Adding a Control (or Controls) in VB.NET at runtime
这个问题是关于VB.NET的。 我对这个问题很新手,所以请原谅我,如果你觉得这个问题不是什么疯狂的事情。 无论如何,我一直在创建一个简单的Windows地址簿表单应用程序。 我们都知道一个人可以拥有一个或多个地址,其中一对多关系成立。 所以,我的应用程序还必须能够编辑这些地址中的每一个(顺便说一下,我的应用程序使用Access数据库,这真的很糟糕,但这是我的任务的一部分),我已经想过使用一个控制数组(只是就像在PHP中,但它显然从未在.NET中工作过)来编辑它们。 我该怎么做呢? 我已经浏览了网上的每个论坛,但似乎无法找到足够的答案。
谢谢!
作为.NET框架的一部分,Vb.net有一个名为FlowLayoutPanel的控件,可以执行您想要的操作。 此控件用于保存添加到表单的控件中的订单,而无需手动定位每个控件。
你唯一要做的就是在表单中创建一个你需要的控件的新实例,让我们称之为EditControl,并将控件的新实例添加到FlowLayoutPanel控件。
像这样的东西:
dim tmpC as new EditControl()
containerControl.Controls.Add(tmpC)
使用此方法,FlowLayoutPanel控件将显示您在表单上添加的尽可能多的EditControl。
假设containerControl声明为FlowLayoutPanel。
但是,如果可以,最好的方法是使用连接到数据集的网格控件。
我不确定我理解这个问题。 你究竟想做什么? 你有什么? 你已经尝试过什么不起作用?
仅通过标题判断,您希望在运行时向表单添加另一个控件。 这很简单。
首先 ,您需要创建一个控件类的实例。 例如, TextBox
类。 您可以通过声明TextBox
类型的变量并调用构造函数来实现:
Dim txt As New TextBox()
其次 ,您可能希望设置刚刚创建的文本框的某些属性。 这些属性可以使用“属性”窗口在“设计视图”中设置。 例如:
txt.Text = "Default text"
第三 ,您需要将该控件添加到窗体的Controls
集合中 。 这就是控件实际显示在窗体上的原因。 (另请注意,您不限于将控件添加到Form
。您可以将其添加到任何容器式控件,例如Panel
或GroupBox
。)例如:
myForm.Controls.Add(txt)
但是,由于您正在创建一个与Access绑定的基于数据的应用程序,因此您应该考虑使用数据绑定控件 ,这会使您的生活更加简单。 他们可以自动将其内容与数据库中保存的信息同步。
看看这个。 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)
您不需要控制数组甚至以编程方式添加它们,您只需要绑定数据源属性/字段/列/表单上的控件,并具有滚动或分页地址记录的机制。 如何执行此操作将在很大程度上取决于您希望向用户呈现的UI类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.