I searched on the forums, and I tried a few things... but they didn't really seem to work. Let me lay out my problem.
I have a very high screen resolution on my laptop: 1400x1050. I'm designing my app on this.
My colleague tried it out on his laptop (which had lesser resolution), and the application did not fit on his laptop. The buttons were dragging out of the screen space.
So, I want my application to automatically resize/adjust based upon the screen resolution. I found some similar forums, and I tried a few things suggested by developers, but that did not really work out for me.
I tried : Solution 1 : But is changing user's screen resution in place of adjusting form .
I don't want to use Maximized screen option and don't want to change user's pc settings. Unfortunatly I am not using Table Layout panel.
Please suggest me a simple solution.
vb.net 2013 Found some of this code on this site, can't find it now to give credit!:-( Made at 15.5 laptop res of 1780x760, changes to users primary screen working area. Resize controls to match forms new size, and the fonts too if it hits a certain res over original. Try it, play with it.
Simple solution?
Design your application at the lowest expected resolution (E.G. 800x600) so that it can be scaled UP.
You can use the following code to get the height and width of the primary screen:
Given this you should perform a check when the form loads to ensure your forms width is smaller than the screens width:
That should do the trick in most scenarios (as long as your form already handles being resized) - if you want to cater for multiple screens then some additional logic will be needed to get the dimensions of the screen that your form starts in, but this sounds like overkill for what you want.
If you are not able or willing to scale down some controls you might be able or willing to use some kind of panels that can be pinned/shown/hidden at the users will. That will give you more flexibility.
Have a look at these.
OK, this is just about as simple as it gets. Just iterate through the VB controls and adjust their sizes based on the ratio of the new screen resolution to your design screen resolution. i.e., something like:
NOTE that I'm using reflection to see if each control has the properties we need to adjust. The way I'm doing it is clean but uses "late binding" and requires Option Strict Off. Tested and approved.
I know it's stupid but... did you try to set control "anchors"?
They allows your control to resize when you resize your form, maybe can help you, also think about using scrollbars