vb.net - Position of controls on different computers -
i have form tab control. above it, there lables, combo boxes , text boxes. on development machine, works fine on other machines, resolution different, position of controls changed. somewhere combo box overlaps tab control, somewhere text boxes , lables not aligned each other.
how set application maintains shape no matter resolution is.
i tried autoscalemode dpi, inherit etc. nothing worked.
thanks
i use layout panels, particularly tablelayoutpanel. row contains combobox or textbox, set row's height autosize. similarly, label goes in autosize column. tabpanel can span across several columns. in columns set sizes (absolute or percent), set child control's anchor left & right fill entire column.
not screen resolution change things, dpi. dpi windows setting enlarges controls, useful on monitors fine pixels rather chunky pixels. autosize, controls can automatically enlarge,
copy , paste code form1.designer.vb example. take note of anchor property of each control, , size settings each row , column.
<global.microsoft.visualbasic.compilerservices.designergenerated()> _ partial class form1 inherits system.windows.forms.form 'form overrides dispose clean component list. <system.diagnostics.debuggernonusercode()> _ protected overrides sub dispose(byval disposing boolean) try if disposing andalso components isnot nothing components.dispose() end if mybase.dispose(disposing) end try end sub 'required windows form designer private components system.componentmodel.icontainer 'note: following procedure required windows form designer 'it can modified using windows form designer. 'do not modify using code editor. <system.diagnostics.debuggerstepthrough()> _ private sub initializecomponent() me.tablelayoutpanel1 = new system.windows.forms.tablelayoutpanel() me.label1 = new system.windows.forms.label() me.combobox1 = new system.windows.forms.combobox() me.label2 = new system.windows.forms.label() me.textbox1 = new system.windows.forms.textbox() me.tabcontrol1 = new system.windows.forms.tabcontrol() me.tabpage1 = new system.windows.forms.tabpage() me.tabpage2 = new system.windows.forms.tabpage() me.tablelayoutpanel1.suspendlayout() me.tabcontrol1.suspendlayout() me.suspendlayout() ' 'tablelayoutpanel1 ' me.tablelayoutpanel1.columncount = 4 me.tablelayoutpanel1.columnstyles.add(new system.windows.forms.columnstyle()) me.tablelayoutpanel1.columnstyles.add(new system.windows.forms.columnstyle(system.windows.forms.sizetype.percent, 50.0!)) me.tablelayoutpanel1.columnstyles.add(new system.windows.forms.columnstyle()) me.tablelayoutpanel1.columnstyles.add(new system.windows.forms.columnstyle(system.windows.forms.sizetype.percent, 50.0!)) me.tablelayoutpanel1.controls.add(me.label1, 0, 0) me.tablelayoutpanel1.controls.add(me.combobox1, 1, 0) me.tablelayoutpanel1.controls.add(me.label2, 2, 0) me.tablelayoutpanel1.controls.add(me.textbox1, 3, 0) me.tablelayoutpanel1.controls.add(me.tabcontrol1, 0, 1) me.tablelayoutpanel1.location = new system.drawing.point(12, 12) me.tablelayoutpanel1.name = "tablelayoutpanel1" me.tablelayoutpanel1.rowcount = 2 me.tablelayoutpanel1.rowstyles.add(new system.windows.forms.rowstyle()) me.tablelayoutpanel1.rowstyles.add(new system.windows.forms.rowstyle(system.windows.forms.sizetype.percent, 100.0!)) me.tablelayoutpanel1.size = new system.drawing.size(260, 238) me.tablelayoutpanel1.tabindex = 0 ' 'label1 ' me.label1.anchor = system.windows.forms.anchorstyles.right me.label1.autosize = true me.label1.name = "label1" me.label1.tabindex = 0 me.label1.text = "label1" ' 'combobox1 ' me.combobox1.anchor = ctype((system.windows.forms.anchorstyles.left or system.windows.forms.anchorstyles.right), system.windows.forms.anchorstyles) me.combobox1.formattingenabled = true me.combobox1.name = "combobox1" me.combobox1.tabindex = 1 ' 'label2 ' me.label2.anchor = system.windows.forms.anchorstyles.right me.label2.autosize = true me.label2.name = "label2" me.label2.tabindex = 2 me.label2.text = "label2" ' 'textbox1 ' me.textbox1.anchor = ctype((system.windows.forms.anchorstyles.left or system.windows.forms.anchorstyles.right), system.windows.forms.anchorstyles) me.textbox1.name = "textbox1" me.textbox1.tabindex = 3 ' 'tabcontrol1 ' me.tabcontrol1.anchor = ctype((((system.windows.forms.anchorstyles.top or system.windows.forms.anchorstyles.bottom) _ or system.windows.forms.anchorstyles.left) _ or system.windows.forms.anchorstyles.right), system.windows.forms.anchorstyles) me.tablelayoutpanel1.setcolumnspan(me.tabcontrol1, 4) me.tabcontrol1.controls.add(me.tabpage1) me.tabcontrol1.controls.add(me.tabpage2) me.tabcontrol1.name = "tabcontrol1" me.tabcontrol1.tabindex = 4 ' 'tabpage1 ' me.tabpage1.name = "tabpage1" me.tabpage1.padding = new system.windows.forms.padding(3) me.tabpage1.tabindex = 0 me.tabpage1.text = "tabpage1" me.tabpage1.usevisualstylebackcolor = true ' 'tabpage2 ' me.tabpage2.name = "tabpage2" me.tabpage2.padding = new system.windows.forms.padding(3) me.tabpage2.tabindex = 1 me.tabpage2.text = "tabpage2" me.tabpage2.usevisualstylebackcolor = true ' 'form1 ' me.autoscaledimensions = new system.drawing.sizef(6.0!, 13.0!) me.autoscalemode = system.windows.forms.autoscalemode.font me.clientsize = new system.drawing.size(284, 262) me.controls.add(me.tablelayoutpanel1) me.name = "form1" me.text = "form1" me.tablelayoutpanel1.resumelayout(false) me.tablelayoutpanel1.performlayout() me.tabcontrol1.resumelayout(false) me.resumelayout(false) end sub friend withevents tablelayoutpanel1 system.windows.forms.tablelayoutpanel friend withevents label1 system.windows.forms.label friend withevents combobox1 system.windows.forms.combobox friend withevents label2 system.windows.forms.label friend withevents textbox1 system.windows.forms.textbox friend withevents tabcontrol1 system.windows.forms.tabcontrol friend withevents tabpage1 system.windows.forms.tabpage friend withevents tabpage2 system.windows.forms.tabpage end class
Comments
Post a Comment