自定义控件要求:
1.自定义控件中有Groupbox控件一个.
2.在GroupBox控件可以动态添加RadioButton控件.(一般最少2个,多则10多个).并且可以动态指定Radiobutton的Text属性.且可以动态调整Radiobutton在Groupbox中的位置.类似于在正常创建表单时往groupbox中添加radiobutton一样.
3.当check指定的RadioButton控件时,自定义控件的一个自定义属性CheckedButton=指定RadioButton在Controls中的索引值.(索引值为RadioButton从上到下或者从左到右排序的序号(比如0,1,2,....).相反当指定CheckedButton的值时,可以Check相应的radioButton.
但是我自定义控件后,后面2项不知道如何做.尝试了,也老是做不对.还烦请高人告知.
你的解答还是有点不能满足我的需要.我贴了图片,再附加解释:
1.建好用户控件RadioList后.在新建窗体时,添加RadioList控件,RadioList控件中的RadioButton控件可以自由增删并移动位置(在设计时自由增删和移动,运行时不能).
2点击某个RadioButton,RadioList的属性SelectedIndex会返回其Index(按顺序从上到下或从左到右为0,1,2...).相反设定SelectedIndex时,相应的RadioButton会Selected.(在设计和运行阶段都必须可以设定).
你要的控件已经做出来了,
但由于字数限制(追问只能回答 999 字……个人觉得不太合理……),
只能把摘要写在下面……
具体代码暂时放在
http://hi.baidu.com/forest93/blog/item/a57a4116ae44295221a4e964.html
在此还请管理员网开一面……
代码比较长,
你可以大概看一下。
反正把代码输进去,
生成一下解决方案就能直接用……
首先,我发现用 FlowLayoutPanel 不便于调整选项的次序,
这一点在插入项目时尤为明显,因此改用 TableLayoutPanel;
其次,在 VS 2010 中,components 变成了一个未使用的字段,
除了占地方以外别无他用,因此使用 List(Of RadioButton) 来维护 RadioButton 的列表,
而在容器销毁的时候,子控件是自动 Dispose 的,所以就没有 components 啥事儿了。
然后,我参考了一下 ListBox,
用一个 ObjectCollection 对象来维护列表项的集合,
并在 RadioList 中用 Items 属性公开。
并从 UITypeDesigner 派生了 RadioListItemsDesigner,
用以在设计时编辑这个 ObjectCollection。
大体的思路就是这样,
主要就是实现的问题了。
vb.net自定义控件问题
1.新建一个用户控件[注意,用户控件(UserControl)不是自定义控件(CustomControl)]2.给用户控件起个名字(我在此处起名叫 RadioList)3.在用户控件上画一个 GroupBox,命名为 RadioGroup,并将其 Dock 属性设置为 Fill 然后,你需要做的是动态增减控件。如果你以前用过 VB 6,你可能会想到控件数组...
VB.net2010自定义组件怎么出现在工具箱
重新生成,控件工具栏,会出现【解决方案名称】组件,如hb_test组件,里面有当前解决方案自定义的控件,如果没有,以下方法可以使控件在编辑状态出现在窗体上。打开form1.designer。vb 在Partial Class Form1类中的最后添加:Friend WithEvents MergeColumn1 As WindowsApplication1.MergeColumn’定义控件的全...
使用VB.NET开发自定义Windows控件
在 NET 中的控件开发已经和 Visual Basic 大相径庭 其根本原因 就是 NET 引入了继承性 在 Visual Basic 中 你只能不用控件或者直接引用现成的控件来实现各种功能性 例如 为了创建前面提到的自定义文本输入框 你就要新建一个 ActiveX 控件 然后向其中增加一个 TextBox 注意 人们通常把这种编程思路称为...
VB.NET activex 控件注册问题
方法一:在VBA模块中加入Shell("regsvr32.exe \/s " & strSystemFolder & "Winsock.ocx") 自己改一下变量。本人较早前用过的方法。方法二:将所有注册组件写进.bat批处理文件中,并加入开机自动运行,或用shell去运行.bat 方法三:微软官方support 最后一段简单翻译一下:RegComCtl32和UnRegComCt...
VB。NET的一个新手问题
回答:radiobutton是单选按钮,各个按钮应该是互拆(也就是同一时刻只能选中一个)的,但需要通过分组来设置哪此radiobutton之间互拆。这就需要设置Group属性,将需要互拆的同一组radiobutton的Group属性设置为相同的数字即可。另外,groupbox本身具有分组的特性,所以,放在groupbox中的radiobutton就默认分在同一...
vb.net中treeview控件的问题
也可以完全自定义 TreeView 控件的外观。若要执行此操作,请将 DrawMode 属性设置为 TreeViewDrawMode.Normal 以外的值并处理 DrawNode 事件。注意 在运行时设置 CheckBoxes、Scrollable、ImageIndex 和 SelectedImageIndex 属性时,将重新创建 TreeView 句柄(请参见 Control.RecreateHandle)以更新控件的...
vb.net中有没有哪个控件可以自定义形状(如圆形,多边形)和颜色,如果...
记得VB6当中有Shape控件,但是VB.net里这个控件不存在了。提个思路:使用Picture控件或Label控件,通过代码在控件里绘图想要的图形,可以试试。
vb.net 自定义用户控件如何放到工具箱上
建一个自定义的Web控件MyContro的步骤:1)引用 using System;using System.IO;using System.Drawing;using System.Web.UI;using System.Web.UI.WebControls;using System.ComponentModel;2)保证MyContro是从WebControl继承的。public class MyControl:WebControl 3)重写下面两个函数,这是必须的 protected ...
vb.net 动态添加大量控件严重卡顿怎么办
控件,自定义一个容器,内容自绘。卡顿主要原因:1、控件多了,电脑必然会慢,因为在 Windows 里每个控件都相当于一个窗口,有自己的句柄,系统需要维护对应的窗口消息,那么一定会卡顿,只能缓解不能消除。2、可以用多线程,在子线程中更新控件,通过委托的方式通知主线程,可以有效缓解卡顿的问题。
PrintPreviewDialog控件按钮可以自定义,该怎么解决
VB.NET的代码参考:Private Sub button2_Click(ByVal sender As Object, ByVal e As EventArgs)Dim p As New PrintPreviewDialog If p.Controls.ContainsKey( "toolStrip1 ") Then Dim ts As ToolStrip = TryCast(p.Controls.Item( "toolStrip1 "),ToolStrip)Dim item As ToolStripItem 'For ...