主题:  请问用C#语言如何控制字符显示个数?

原本简单

职务:普通成员
等级:1
金币:0.0
发贴:99
#12006/10/24 17:17:49
请问用C#语言如何控制字符显示个数?并且鼠标之上时能提示全部字符?



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#22006/10/24 22:00:48
        /// <summary>
        /// 是否为双字节字符。
        /// </summary>
        public static bool IsTwoBytesChar(char chr)
        {
            string str =chr.ToString();
            // 使用中文支持编码
            Encoding ecode = Encoding.Default;
            if (ecode.GetByteCount(str) == 2)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        /// <summary>
        /// 量到字符串的宽度
        /// 一个中文为二个宽度,单字节为一个宽度
        /// </summary>
        public static int StringRealLength(string str)
        {
            int len = 0;
            char[] chr = str.ToCharArray();

            for (int i = 0; i < chr.Length; i++)
            {
                if (IsTwoBytesChar(chr[i]))
                    len += 2;
                else
                    len ++;
            }

            return len;
        }

        /// <summary>
        /// 把字符串串截成一定长度
        /// 一个中文为1个长度
        /// </summary>
        public static string CutString(string str, int maxLen)
        {
            if (StringRealLength(str) <= maxLen * 2)
            {
                return str;
            }
            else
            {
                int pos = 0;

                for (int i = 0; i < str.Length; i++)
                {
                    if (StringRealLength(str.Substring(0, i+1)) > (maxLen - 1) * 2)
                    {
                        pos = i;
                        break;
                    }
                }

                return str.Substring(0, pos) + "..";
            }
        }


非常大鱼

原本简单

职务:普通成员
等级:1
金币:0.0
发贴:99
#32006/10/27 16:25:35
谢谢大哥了,呵呵