C# 获取固定像素字符串

View Code
 System.Windows.Forms.TextBox tb = new System.Windows.Forms.TextBox();
                System.Drawing.Font stringFont = new System.Drawing.Font("Microsoft YaHei", 18);
                tb.Font = stringFont;
                string strName = stringFormat(tb, singleUCBtn.SingleUCName, 180);    
     /// <summary>
        /// 根据像素长度限制返回字符串
        /// </summary>
        /// <param name="txtb"></param>
        /// <param name="w"></param>
        /// <returns></returns>
        public static string stringFormat(System.Windows.Forms.TextBox txtb, string strInfo, int lengh)
        {
            bool b=false;
            int length = strInfo.Length;
            string temp="";
            for (int i = 1; i <= length; i++)
            {
                if (GetMaxTextLength(tb, temp) > lengh)
                {
                    b = true;
                    break;
                }
                temp=strInfo.Substring(0,i);           
            }
            //if (b)
                //temp = temp + "...";

            return (temp);
        }
View Code
      /// <summary>
        /// 计算字符串的像素长度
        /// </summary>
        /// <returns>字符串长度</returns>
        private static int GetMaxTextLength(System.Windows.Forms.TextBox tb, string strMax)
        {
            int iTextLength = (int)tb.CreateGraphics().MeasureString(strMax, tb.Font).Width;
            return iTextLength;
        } 

 

转载于:https://www.cnblogs.com/wzxflu/archive/2012/11/21/2781560.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值