2016-08-25 11 views
0

をドラッグしてボタンを移動しようとすると:これはある程度、私はつもりどのように取り組んでいる私はそうのようなボタンを作成するために私のアプリケーションを開発しようとしているマウスのボタンをホールドし、

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

あなたは個々のボタンへのアクセスを持っているしたい場合は、グローバルリストを作ってみることができます。

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を見て - それをマウスカーソルがボタンの内側にある場合にのみ機能しますか?このように動作するはずですか?

ボタンをクリックすると、どのボタンがクリックされたのかを調べることができます。あなたの方法は大丈夫です。

関連する問題