日期:2014-05-18  浏览次数:20783 次

如题,我想从数据库中取出来的数据,动态添加一个按钮放到界面上显示出来并触发事件,应该怎么做,各位大侠帮帮忙
如题,我想从数据库中取出来的数据,动态添加一个按钮放到界面上显示出来并触发事件,应该怎么做,各位大侠帮帮忙

------解决方案--------------------
你可以用treevie来实现

------解决方案--------------------
动态添加按钮可用类似以下代码,只要你的自定义控件是容器类的,就没有问题:
C# code

pqCompon.InterfaceCompon myItfcCpn;
myItfcCpn = new pqCompon.InterfaceCompon();
myItfcCpn.Parent = DesignPanel;
myItfcCpn.Name = m_objSvcList.Obj.appServices[i].id;
myItfcCpn.Left = x;
myItfcCpn.Top = y;
myItfcCpn.Click += InterfaceCpnClick;

------解决方案--------------------
通过代理实现事件
http://www.cnblogs.com/dawei362/articles/1268771.html
------解决方案--------------------
我是在自定义控件中添加的,他提示说无法添加子控件
------------------------------------------
你的自定义控件从什么继承?打开this.SetStyle(ControlStyles.ContainerControl, true);了没?
------解决方案--------------------
可以实现,给你打一个比方。在库中有一个表,表里只有二个字段叫LbName,LbText;有10个值。我们现在用这个十个值生成十个LABEL,加入到Panel2中,同时生成LABEL的事件。。代码如下:



for (int i = 0; i < KjTable.Rows.Count; i++)
{
Label Lb = new Label();
Lb.Name = KjTable.Rows[i]["LbName"].ToString();
Lb.Text = KjTable.Rows[i]["LbText"].ToString();
Lb.BackColor = System.Drawing.Color.Transparent;
Lb.AutoSize = true;
System.Drawing.Point p = new Point(12 + i * 30, 13 + i * 30);
Lb.Location = p;
panel2.Controls.Add(Lb);

Lb.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Lb_MouseMove);
Lb.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Lb_MouseDown);
Lb.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Lb_MouseUp);
}
这个明白了吧,不明白加我QQ:51255777。。。。