Esempio n. 1
0
        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());
            }
        }