none
WinFrom 表單上物件拖拉 RRS feed

  • 問題

  • Dear all:

                  請問那邊可以找到類似點選Label或Button等物件,當滑鼠點選該物鍵不放時候可以在表單上托移,可以的話請給個方向或是提供範例資料,感謝~

    2007年6月22日 上午 10:44

所有回覆

  • hi 小豆芽你好:

                          我知道那裡有範例跟教學,不過可能你得自己去書局看一下,我是有書,不過內容蠻多的,

                          你可以參考章立民老師的程式開發與介面設計,看你是要看vb的還是c#的都有,在4-61有教(vb那本),

                          c#的我丟在公司不知道,應該也是一樣,如果你很需要就區翻一翻嚕^^

                                                                                                             馬小玲 

    2007年6月22日 下午 03:48
  • HI,

     

    您可以這樣做:

     

    0. 將Form的AllowDrop屬性設定為True

    1. 在Form的類別中宣告以下的變數:

     

          private int x;
            private int y;

    2. 處理Form的MouseDown事件:

        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                {
                    x = e.X;
                    y = e.Y;
                    DoDragDrop(pictureBox1, DragDropEffects.Move);
                }
            }

     3. 處理Form的DragEnter事件:

        private void Form1_DragEnter(object sender, DragEventArgs e)
            {
                e.Effect=DragDropEffects.Move;
            }

     

    4. 處理Form的DragDrop事件:

       private void Form1_DragDrop(object sender, DragEventArgs e)
            {
                Point p=PointToClient(new Point(e.X, e.Y));
                pictureBox1.SetBounds(p.X-x, p.Y-y, pictureBox1.Width, pictureBox1.Height);
            }

     

    完成!

     

    tihs

    2007年6月23日 上午 01:24
  • Dear tihs:

                    想請問的是因為我用動態產生物件,那麼我要怎麼設定成每個都可以移動呢?

     

             

    Code Snippet
    for (int i = 0; i < set.Tables[tableName].Columns.Count; i++)
    {
       string columnName = set.Tables[tableName].Columns[i].ColumnName.ToString();
       Label label = new Label();
       label.Name = columnName;
       label.Text = columnName;
       splitContainer2.Panel1.Controls.Add(label);
    }

     

    2007年6月25日 上午 01:55
  • HI,

     

    其實做法都是一樣的, 要讓物件可以被拖放, 您必須要做以下三件事情:

     

    1. 將物件的AllowDrop屬性設定為true

    2. 處理物件的DragEnter事件

    3. 處理物件的DragDrop事件

     

    tihs

    2007年6月25日 下午 10:10