VS 2008 Form And Controls Resize Using Anchor/Dock
Mar 7, 2010
From this forum I saw some discussions about form/controls resizing issue with different resolution screen setting. Most suggestions are using Anchor/Dock. My application's form has 10 group boxes and some buttons. In each group box there are 5 Text boxes and other more controls. I tried anchor and dock but couldn't make it work. My questions are -
1, How to re-size form and all individual controls as well?
2, If anchor/Dock are suggested, do i have to use both of them or just one? it seems to me there is no big difference between them.
we all know how to dock or anchor controls so that they resize themselves accordingly when a form is resized. It works fine till we have rows of controls on left and right size of the form. But what if have three columns (Columns as in visual sense. I'm not talking about any column control containing other controls) of controls? For example a form having a bunch of controls in the left side, a bunch in the middle and a bunch in the right. There may be a few more bunches in the middle. Now while resizing the form, I want the controls to resize accordingly as well as change their positions to make space for the previous bunch of controls that are resizing.I mean, while the user increases the form size horizontally, the controls of the second bunch should resize and at the same time they should move right because the controls of the first bunch are increasing horizontally too. When the user decreases the form size horizontally the same thing should occur in the reverse order.I can manage it somehow using nested splitcontainers but that's too cumbersome. I would like to know if there's some better way to achieve it, like setting some property etc.?
I created a basic winform project where I want to handle all resizing without writing a single line of code. I set up controls using dock/anchor. They all work properly, until I add a custom UserControl. When I first press F5, the project works fine. However when I get back to the IDE some (but not all) controls which have anchor right/bottom are resized/moved into positions and sizes not previously defined. Some cannot even be restored as they are moved permanently below the container's boundary with coordinates above 2000. If I fiddle around and test the project many times, all controls with right/bottom anchoring will go haywire eventually.
If the custom UserControl has controls inside with right/bottom anchoring those also get resized in weird ways. Adding the controls again solves the problem temporarily. It is the IDE that moves these controls around since these movements are displayed in the undo stack right after I exit testing the project (however,undoing these steps only messes things up even more).I am using VB 2010 on Windows 7 x64.
I have a code method that I wrote in vb6 that works on every screensize and resolution combo...however vb.net is not letting me do this. Here is what I do. upon form load at program startup I gather all of the data of the controls (height,width,top,left,font size) prior to the form actually resizing and I store those in a listbox that is not visible. Then when the form resize is called I proportion all of the controls from their old positions versus the new form size.
how do i make the height of listview automatically resize, when the form is maximized? The anchor property does not work well with this listview because it is a custom control. Does anyone knows how to programmatically resize the height of a listview whenever the user maximizes the parent form like this picture:
I have a program that has a TabControl on it. There is code to resize all the controls on the form when the window is resized, regardless of what tab is selected in the TabControl. My issue is that the form will only resize the controls on the selected tab. So if the window is maximized, for example, it will resize the controls on the selected tab, but if the user changes tabs, the new tab will still have the original, non-maximized sizes on it. This works the same with un-maximizing the form, the controls on other tabs will remain the size they are supposed to be when the form is maximized. Here's some example pseudo-code to give you an idea. Assume button1 is on tab1 and button2 is on tab 2.
sub form_resize() button1.width = x button2.width = x2 button1.height = y button2.height = y2 end sub
So the code is supposed to resize all controls regardless of the tab. But if tab 1 is selected it will visually resize button1 but it wont resize button2. To counter this, I simply made the form resize by 1 pixel and then move back to the original size when the user changes tabs. BUT this wont work for maximizing/un-maximizing the form. I tried telling it to detect window state on tab select so if the form is maximized, it will un-maximize it, perform the resize, and re-maximize the form but this doesnt seem to work.
automate this somehow so that regardless of selected tab or window state, all controls will be resized to the proper, current form size?
find a way of resizing my form + controls. I did manage to resize the form and all controls (only standard controls in visual studio) i could get the dotNetBar material to resize?
I was an idiot and designed my VB app on a 17inch monitor in a 1280X1024 resolution completely forgetting about what it would like on another machine. This might be a long shot, but is there an easy way to get the resolution of the users monitor and re-size the controls and form accordingly?
Is it possible to resize my controls on my form when I run it? The problem I have is that I have created a windows application which has a maximize state on all forms but on some machines my controls go missing (mostly on widescreen laptops). Ideally some way of resizing my controls would probably be best? So is that possible?
Does anyone know how to make the controls on an MDI Child form resize along with the form itself? I inherited a project from another developer and I was asked specifically to make the form resize. With advice I received on this forum I now have the form resizing as expected. It will minimize, restore and maximize as well as resize with the mouse pointer.
The problem is that when I increase the size of the form all I get is more blank space on the screen. The controls to do change at all. Although I thin this is normal behavior for a Windows form my bosses all seem to think that the controls resize on every other widows for they see. I wondered if anyone had successfully accomplished this. I was already advised to write a FormResize handling subroutine and this unfortunately did not work.
Where is the best place to resize a control on a form when a form is resized?....I'm currently using the Form1_SizeChanged event and seems to work ok. Also is there any need to check in the forms resize event if the form is in a minimized state before resizing controls?.,.. in VB6 if you try to resize a control when the form is minimized you get an error, but I don't see that happening in BV10 Form1_SizeChanged event, does VB10 automatically ignore resizing controls when a form is minimized or something?
All my forms inherits from one base form where we handle background paint and set standard properties. Recently, I think of cheching if the app is running on Vista or Later to use Segoe UI font, and I added this. The problem is than inherited forms changed sizes and their inner controls changed also... even PictureBoxes! The controls and forms seems to be thinner (in width), so square picturebox became vertical rectangules!
I have been searching for a solution to this but I can't find one. I have played with the anchor and dock properties but they are not doing what I want, so here goes... I would like to place and size all of my controls on my form and then when the form is re-sized during run time (different resolutions, full screen/windowed, etc), have everything just scale up or down accordingly. Anchoring the controls to all four sides of my form re-sizes the control properly but it doesn't move it's location in sync with the other control's size next to it, they begin to overlap each other. Am I going to have to code my own scaling code for each control in my program?
I am creating an application for a company and this CD will be distributed to hundreds of people. Many users will have different computer screen size and different screen settings such as their resolution set to 1024 x 728 and their monitor size 17" inches.
I noticed when I loaded the application on a different computer with different settings the application was to big for the screen and did not work. I notice that lot of other programs from microsoft resize their controls and text but never knew how they did it. How can I resize the form and control according to the user's setting.
Does datarepeater control has a bug? I tried to anchor a text box control inside the DataRepeater.Item, but it didn't work. At the property window, I set Anchor = Top, Left, Right. Anchor Right doesn't work properly.
i am working Vb.NET 2008 Windows Appl. I was created some Forms which are having some controls. If i run the Appl in my sys its working fine. But if run .exe file into other system like Windows 7 with 125% text size, then the forms and Controls are expanding i want to scroll it out. Is it any solution for fit these Controls and Forms or comapre the screen size and resize the forms and controls automatically..
This just started happening recently...If I resize the form, the contents do not change.(All controls on the form are docked in such a way that resizing the form resizes the controls). If I make the form bigger than what it loaded at, the contents stay the same and the extra room is black. If I make it smaller than original, then it just cuts things off.Any idea what could be happening here? It is a standard System.Windows.Forms.Form. Nothing special handled on Resize, ResizeStart, ResizeEnd, or SizeChanged events.
I am making a card game, and now i have 52 picture boxes of cards. It all works fine no problem at all. But a mate of my told me that you should be able to resize the form.
Is there an easy way to resize everything on a form when the form is resized? (so like fitting it to the form?)
Some of the text on my application gets cut off when the frm gets to small. I was think when my frm gets to a small size that my application could re size this label on the application.I know that i will have to work with the Form1_Resize property.
I am trying to Anchor a Form (Top, Bottom, Left & Right) in a panel.
I have tried:
frmFnct.Anchor = AnchorStyles.Top Or AnchorStyles.Left Or AnchorStyles.Bottom Or AnchorStyles.Right
This doesn't error but as the parent Form is re-sized, the panel re-sizes but the Form that is loaded in the Panel does not re-size.
I guess I can use the Parent Forms Resize Event and size the form to the panel dimensions but just wondering if there is a way to use built in functionality?