I had to go and cook the evening meal
before I could finish my previous comment. I was commenting about the mouse X and Y and this quote below is not relevant to that. However I can't overlook the opportunity to respond
Button1.Left = Button1.Left will not change the position of the button as expected
In an AutoScaled application the valid range of values for Left are 0 to 239. This will be translated on a VGA device to 0 to 478 in steps of two and retranslated to 0 to 239 when read back so in an AutoScaled application there is no possibility of a fractional value arising in this case.
However if a fractional MouseX value was assigned to a Left property the value is cast to an integer on assignment to the proerty so when read back the Left value would not be the same as the MouseX value that was assigned! If a comparison was then done, for some reason, with the saved MouseX value the comparison would fail and the application would behave differently when run on a QVGA device to when run on a VGA device
so I am still of the opinion that the Mouse coordinates should be "Floored" before return.