c# 文本超长截断

根据控件大小进行截断

  private void SetStringTruncat(Static.LabelEx lbl)
        {
            string oldStr = lbl.Text;
            if (string.IsNullOrEmpty(oldStr))
                return;

            Graphics g = lbl.CreateGraphics();
            string strNewStr = string.Empty;            
            for (int i = 0; i < oldStr.Length; i++)
            {
                strNewStr = oldStr.Substring(0, oldStr.Length - i) + "";
                SizeF sizeF = g.MeasureString(strNewStr, lbl.Font, 1000, StringFormat.GenericTypographic);
                if (sizeF.Width <= lbl.MaximumSize.Width - 20)
                {
                    break;
                }
            }
            g.Dispose();
            if (strNewStr == oldStr + "")
                strNewStr = oldStr;
            lbl.Text = strNewStr;
        }
原文地址:https://www.cnblogs.com/bfyx/p/9881376.html