繁体   English   中英

在运行时在VB.NET中添加一个控件(或控件)

[英]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 。您可以将其添加到任何容器式控件,例如PanelGroupBox 。)例如:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM