none
Panel movement in Windows Form ? RRS feed

  • Pertanyaan

  • I want to create a panel that can move when mouse mousedown and stop after mouseup. It works well , but the movement is not smooth, it like left the last movement rendering.

    My question is how to make the movement smooth ?

    Here is my code :

     class MovePanel : Panel
        {
            private bool _isDown = false;
            private Point _relativeMouseDownPoint;
            private Point _isDownLoaction;
    
            protected override void OnMouseDown(MouseEventArgs e)
            {
                base.OnMouseDown(e);
                _isDown = true;
                _isDownLoaction = this.Location;
                _relativeMouseDownPoint = new Point(e.X, e.Y);
            }
    
            protected override void OnMouseUp(MouseEventArgs e)
            {
                base.OnMouseUp(e);
                _isDown = false;
            }
    
            protected override void OnMouseMove(MouseEventArgs e)
            {
                base.OnMouseMove(e);
                if (_isDown)
                {
                    int xMov = e.X - _relativeMouseDownPoint.X;
                    int yMov = e.Y - _relativeMouseDownPoint.Y;
    
                    int x = _isDownLoaction.X + xMov;
                    int y = _isDownLoaction.Y + yMov;
                    this.Location = new Point(x, y);
                }
            }
        }


    It's hard to be advanced programmer

    Jumat, 09 November 2012 06.49

Jawaban

  • Halo IRW7,

    Mungkin Anda harus memikirkan kembali bagaimana informasi tersebut akan ditampilkan. Sebagai contoh, salah satu cara untuk melakukannya adalah dengan menggunakan bentuk tab dimana masing-masing tab hanya terdiri dari sebagian dari info keseluruhan. Lakukan priority grouping pada data anda dengan menampilkan hanya satu halaman , atau tab, pada suatu waktu. Teknik ini lazim dilakukan beberapa browser. Itu akan sangat mempercepat pergerakan mouse anda.

    Sebagai referensi coba anda lihat beberapa sampel project berikut:

    Scrolling Panel

    How to drag and move winform using mouse

    Semoga membantu.


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Jumat, 16 November 2012 02.10
    Moderator

Semua Balasan

  • Halo IRW7,

    Selamat bergabung dalam forum MSDN Indonesia.

    Untuk kenyamanan  pengguna forum lainnya dan dikarenakan forum ini diperuntukkan oleh pengguna berbahasa Indonesia, kami mohon anda untuk menggunakan bahasa Indonesia dalam memposting pertanyaan anda di forum.

    Terima kasih atas perhatiannya.


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Kamis, 15 November 2012 07.32
    Moderator
  • Halo IRW7,

    Mungkin Anda harus memikirkan kembali bagaimana informasi tersebut akan ditampilkan. Sebagai contoh, salah satu cara untuk melakukannya adalah dengan menggunakan bentuk tab dimana masing-masing tab hanya terdiri dari sebagian dari info keseluruhan. Lakukan priority grouping pada data anda dengan menampilkan hanya satu halaman , atau tab, pada suatu waktu. Teknik ini lazim dilakukan beberapa browser. Itu akan sangat mempercepat pergerakan mouse anda.

    Sebagai referensi coba anda lihat beberapa sampel project berikut:

    Scrolling Panel

    How to drag and move winform using mouse

    Semoga membantu.


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Jumat, 16 November 2012 02.10
    Moderator