2012-04-21 21 views
0

winform C#プロジェクトに問題があります。実行時に新しいボタンを移動する方法は?

フォームの周りに実行時に作成した新しいボタンを移動したいと思います。どうやってやるの?

Button[] buttons = new Button[1000]; 
     int counter = 0; 
     Button myText = new Button(); 
private void button2_Click(object sender, EventArgs e) 
     { 
       Button myText = new Button(); 
       myText.Tag = counter; 
       myText.Location = new Point(x2,y2); 
       myText.Text = Convert.ToString(textBox3.Text); 
       this.Controls.Add(myText); 
       myText.MouseMove += new MouseEventHandler(myText_MouseMove); 
       myText.MouseDown += new MouseEventHandler(myText_MouseDown); 
       buttons[counter] = myText; 
       counter++; 
     } 
public void myText_MouseMove(object sender, MouseEventArgs e) 
     { 
      int s = e.GetHashCode(); 
      int check = 0; 
      for (int i = 0; i < counter; i++) 
      { 
       if (buttons[i].GetHashCode() == s) 
        check = i; 
      } 
      if (e.Button == MouseButtons.Left) 
      { 
       buttons[check].Left += e.X - move.X; 
       buttons[check].Top += e.Y - move.Y; 
      } 
     } 
     void myText_MouseDown(object sender, MouseEventArgs e) 
     { 
      move = e.Location; 
     } 

私はこのコードを使用して新しいボタンを作成し、彼を移動させます。今私はフォームの周りに移動したい。

私はそれを1つのボタンだけにすれば、私はそれを動かすことができますが、それ以上の場合は問題です。

誰かがコードを書いたり、彼を修正したり、私を助けることができたら、それは私にとってとても良いことです。 TNX :)

+0

を試してみてください、あなたは何があなたのコードで "移動" であることを説明していただけますか? –

答えて

2

この

public void myText_MouseMove(object sender, MouseEventArgs e) 
    { 
     Button button = (Button)sender; 
     if (e.Button == MouseButtons.Left) 
     { 
      button .Left += e.X - move.X; 
      button .Top += e.Y - move.Y; 
     } 
    } 
+0

wow tnx私はその仕事は本当にありがとう!!! – user1348191

+0

あなたは何をしましたか? – user1348191

関連する問題