Is there a way to move a control on a form, as if it were a floating toolbar
(but it's not; it's a datagrid, actually, a small one)?
Thanks for any help.
Bernie Yaeger
Bob Powell [MVP] - 25 Dec 2004 10:55 GMT
A control can be moved or sized by changing the Loacation or Size properties
at runtime. If you want to click on and then drag the control you'll have to
handle the appropriate mouse events on behalf of the control being moved.

Signature
Bob Powell [MVP]
Visual C#, System.Drawing
Find great Windows Forms articles in Windows Forms Tips and Tricks
http://www.bobpowell.net/tipstricks.htm
Answer those GDI+ questions with the GDI+ FAQ
http://www.bobpowell.net/faqmain.htm
All new articles provide code in C# and VB.NET.
Subscribe to the RSS feeds provided and never miss a new article.
> Is there a way to move a control on a form, as if it were a floating toolbar
> (but it's not; it's a datagrid, actually, a small one)?
>
> Thanks for any help.
>
> Bernie Yaeger
Bernie Yaeger - 25 Dec 2004 17:31 GMT
Hi Bob,
Tx for the direction; I'm beginning to learn more about it now.
Thanks again,
Bernie
>A control can be moved or sized by changing the Loacation or Size
>properties
[quoted text clipped - 9 lines]
>>
>> Bernie Yaeger
Paschalis Pagonidis - 28 Dec 2004 10:07 GMT
Hi Bernie,
You should code sth like the following steps:
1. Create a class private variable to store the mouse
location eg. private int xMovePos, yMovePos;
2. In the MouseDown event write the following:
Point pt = new Point (e.X, e.Y);
Point sp = this.PointToScreen (pt);
xMovePos = sp.X;
yMovePos = sp.Y;
3. In the MouseOver event write the following:
if (e.Button == MouseButtons.Left)
{
Point pt = new Point (e.X, e.Y);
Point sp = this.PointToScreen (pt);
this.Left += (sp.X - xMovePos);
this.Top += (sp.Y - yMovePos);
xMovePos = sp.X;
yMovePos = sp.Y;
}
That will make your custom control float like a toolbar.
Pascal
>-----Original Message-----
>Is there a way to move a control on a form, as if it were a floating toolbar
[quoted text clipped - 5 lines]
>
>.