我正在尝试开发我的应用程序来创建这样的按钮:
private void button1_Click(object sender, EventArgs e)
{
int top = 150;
int left = 150;
for (int i = 0; i < 1; i++)
{
Button button = new Button();
button.Left = left;
button.Top = top;
this.Controls.Add(button);
top += button.Height + 2;
}
}
这在一定程度上影响了我的意图。我希望能够创建具有某些属性的这些按钮,但我不知道如何访问各个按钮。
现在,我还希望能够通过按住鼠标按钮并拖动它们来移动这些按钮,然后将它们释放到我想要的位置。这是我从某些在线资源中获得的东西。
public Form3()
{
InitializeComponent();
button1.MouseDown += button1_MouseDown;
}
private Point MouseDownLocation;
private void button1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
MouseDownLocation = e.Location;
}
}
private void button1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
button1.Left = e.X + button1.Left - MouseDownLocation.X;
button1.Top = e.Y + button1.Top - MouseDownLocation.Y;
}
}
任何帮助都将不胜感激。
答案 0 :(得分:0)
如果您想要访问各个按钮,可以尝试创建全局列表:
List<button> buttons = new List<button>();
并将其添加为:
Button button = new Button();
button.Left = left;
button.Top = top;
this.Controls.Add(button);
top += button.Height + 2;
buttons.add(button);
接下来,查看函数button1_MouseMove
- 仅当鼠标光标位于按钮内时才有效?它应该这样工作吗?
如果单击按钮,您可以查看列表以查找单击的按钮并移动它 - 您的方法看起来没问题。