vb.net如何动态创建控,并可以拖动

xdy19871218 2016-06-21 12:16:32
已有的控件,加上MouseDown/MouseUp/MouseMove后可以实现拖动,
但是用Controls.add()生成的新的控件,怎么实现拖动,是可以生成MouseDown/MouseUp/MouseMove的代码还是有其它的方式,求大神!
...全文
325 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xdy19871218 2016-09-23
  • 打赏
  • 举报
回复
后来问朋友解决了,代码如下,怪自己不知道sender public Commission(DataTable dw) { InitializeComponent(); DataRow dr; int j=0,k = 1; Button btn; for (int i = 0; i < dw.Rows.Count; i++) { dr = dw.Rows[i]; btn = new Button(); btn.Name = "btn" + (i + 1); btn.Height = Convert.ToInt32(dr[4]) / 100 * 3; btn.Width = Convert.ToInt32(dr[3]) / 100 * 3; if (k > 25) { k = 0; j++; } k++; btn.Text = ExtensionMethods.ToSBC(Convert.ToString(dr[2])) + ":" + ExtensionMethods.ToSBC(Convert.ToString(dr[3])) + "X" + ExtensionMethods.ToSBC(Convert.ToString(dr[4])) + "X" + ExtensionMethods.ToSBC(Convert.ToString(dr[5])); this.Controls.Add(btn); btn.Left = 600 + 200 * j; btn.Top = k * 26; btn.BringToFront(); btn.MouseDown += Btn_MouseDown; btn.MouseMove += Btn_MouseMove; btn.MouseUp += Btn_MouseUp; toolTip1.IsBalloon = true; toolTip1.SetToolTip(btn, btn.Text); } } public int MousX; public int MousY; public int CurrX; public int CurrY; public string btnName1; public bool flag = false; private void Btn_MouseDown(object sender, MouseEventArgs e) { MousX = e.X; MousY = e.Y; flag = true; } private void Btn_MouseUp(object sender, MouseEventArgs e) { flag = false; } private void Btn_MouseMove(object sender, MouseEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Left) { Button btn = (Button)sender; CurrX = btn.Left - MousX + e.X; CurrY = btn.Top - MousY + e.Y; btn.Location = new Point(CurrX, CurrY); } }
wpxxsyzx 2016-06-21
  • 打赏
  • 举报
回复
使用AddHandler试试,声明变量时使用WithEvents 不管用

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧