public void UpdateWidths(int intNameWidth, int intNudKarmaWidth, int intValueWidth, int intLimitsWidth) { tlpMain.DoThreadSafe(x => x.SuspendLayout()); try { if (intNameWidth >= 0) { lblName.DoThreadSafe(x => { if (x.MinimumSize.Width > intNameWidth) { x.MinimumSize = new Size(intNameWidth, x.MinimumSize.Height); } if (x.MaximumSize.Width != intNameWidth) { x.MaximumSize = new Size(intNameWidth, x.MinimumSize.Height); } if (x.MinimumSize.Width < intNameWidth) { x.MinimumSize = new Size(intNameWidth, x.MinimumSize.Height); } }); } if (intNudKarmaWidth >= 0 && nudBase?.DoThreadSafeFunc(x => x.Visible) == true) { nudKarma?.DoThreadSafe(x => { if (x.Visible) { x.Margin = new Padding( x.Margin.Right + Math.Max(intNudKarmaWidth - x.Width, 0), x.Margin.Top, x.Margin.Right, x.Margin.Bottom); } }); } if (intValueWidth >= 0) { lblValue.DoThreadSafe(x => { if (x.MinimumSize.Width > intValueWidth) { x.MinimumSize = new Size(intValueWidth, x.MinimumSize.Height); } if (x.MaximumSize.Width != intValueWidth) { x.MaximumSize = new Size(intValueWidth, x.MinimumSize.Height); } if (x.MinimumSize.Width < intValueWidth) { x.MinimumSize = new Size(intValueWidth, x.MinimumSize.Height); } }); } if (intLimitsWidth >= 0) { lblLimits.DoThreadSafe(x => { if (x.MinimumSize.Width > intLimitsWidth) { x.MinimumSize = new Size(intLimitsWidth, x.MinimumSize.Height); } if (x.MaximumSize.Width != intLimitsWidth) { x.MaximumSize = new Size(intLimitsWidth, x.MinimumSize.Height); } if (x.MinimumSize.Width < intLimitsWidth) { x.MinimumSize = new Size(intLimitsWidth, x.MinimumSize.Height); } }); } } finally { tlpMain.DoThreadSafe(x => x.ResumeLayout()); } }