日期:2014-05-19  浏览次数:20663 次

<在线等待> 大家好.帮小弟解决一个问题.

在C#中,   当我有一个button控件时,当我点击的时候,怎么才能出现相同的button,而且再次点击的时候,又会出现相同的,   以此类推下去.   而且控件分别在运行后可以移动,

------解决方案--------------------
不要把button想象的太神奇,它也是一个对象,它也有一些方法和属性供我们在运行进改变!
可参考下IDE生成的窗体布局cs代码
------解决方案--------------------
你直接new一个button控件添加在相应的窗体上不就好了
移动你可以直接写mousedown事件就可以了
------解决方案--------------------
LS说的对
------解决方案--------------------
你点击一个button的时候new一个出来,大小,文本和前一个一样,在click()事件中调用同一个方法,这个方法你可以自己写,适用于所有button,移动也这样,写一个方法MouseDown(),设置button的left=MouseEventArgs e.x,top=MouseEventArgs e.y
------解决方案--------------------
LS的,你说的这些你做过么?MouseDown是什么事件啊??????????????????????????
------解决方案--------------------
关注.....
------解决方案--------------------

private void btn_Click(object sender, EventArgs e)
{
Button btn=new Button();
btn.Click+=new EventHandler(btn_Click);
listView1.Location = new System.Drawing.Point(((Button)sender).Top+50, 32);//自己控制显示位置
btn.Visible=true;
Controls.Add(btn);
}
------解决方案--------------------
listView1.Location = new System.Drawing.Point(((Button)sender).Top-150, 32);//自己控制显示位置
改为减吧,

------解决方案--------------------
关注中~~~~
希望能把全部源码写清楚些
------解决方案--------------------
先添加一个新的button,为它添加一个btn_Click,
在btn_Click中
private void btn_Click(object sender, EventArgs e)
{
Button btn=new Button();
btn.Click+=new EventHandler(btn_Click);

btn.Location = new System.Drawing.Point(8, ((Button)sender).Top+20);
btn.Show();
this.Controls.Add(btn);
}


------解决方案--------------------
MouseDown是鼠标按下时调用的事件

------解决方案--------------------
还要移动啊?建议使用拖放,因为如果使用了MouseDown ,Mousemove,Mouseup之后,就少了Click事件了,或者判断Mouseup之后没有移动就激发Click事件
------解决方案--------------------
up