c# 根据字体获得宽度
2016-08-11 10:28:31 weixin_34354173 阅读数 8
//先拖一个label1到界面,然后在Paint事件里面复制代码
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Font f = label1.Font;
            Graphics g = e.Graphics;
            SizeF z = g.MeasureString(label1.Text, f);//关键
            //为了验证是否为显示的字符串长度
            g.DrawRectangle(new Pen(Color.Red), 0, 0, z.Width, z.Height);
        }

转自:
http://zhidao.baidu.com/link?url=2CvDQybhANGwzVbdPA8hX5F0BzBcPf41NNOVBb5I_tuxgV9e5r3-Vn6sl7oPw6VjevYT99Tm3yYwDcMF1kh8y8aPCjspWmqgWCn1txcTGYO
2008-04-14 11:20:00 ht8326 阅读数 625
得到文件名,文件扩展名字,服务器路径  
string fileNamePath=txtFileName.Text.Trim();  
string uriString=txtServerPath.Text.Trim();  
string fileName=fileNamePath.Substring(fileNamePath.LastIndexOf("
//")+1);    
string fileNameExt=fileName.Substring(fileName.LastIndexOf(".")+1);  
if(uriString.EndsWith("/")==false) uriString=uriString+"/";
  
 
2013-04-15 22:29:36 yueguanyun 阅读数 1743

参照:Set TextBox Height

 

2010-04-19 20:40:00 gjysk 阅读数 2101

根据宽度来决定显示的字符串长度 (C#,VS2005)

如果 lable长度固定但字符串长度可变,如果超过了lable显示的长度时,希望用 ...代替剩下的字符,这时需要一个函数
Graphics.MeasureString
具体代码如下

  public string Abbreviation(string str)
        {
            if (str == null)
            {
                return null;
            }
            int strWidth = FontWidth(txtName.Font, txtName, str);
            //获取label最长可以显示多少字符
            int len = label.Width * str.Length / strWidth;
            if (len > 3 && len < str.Length)
            {
                return str.Substring(0, len - 3) + "...";
            }
            else
            {
                return str;
            }
        }

        /// <summary>
        /// 获取字符串在 font时的长度
        /// </summary>
        private int FontWidth(Font font, Control control, string str)
        {
            using (Graphics g = control.CreateGraphics())
            {
                SizeF siF = g.MeasureString(str, font);
                return (int)siF.Width;
            }
        }

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/laorer/archive/2010/01/07/5148510.aspx

2010-04-19 20:40:00 iteye_17377 阅读数 17

根据宽度来决定显示的字符串长度 (C#,VS2005)

如果 lable长度固定但字符串长度可变,如果超过了lable显示的长度时,希望用 ...代替剩下的字符,这时需要一个函数
Graphics.MeasureString
具体代码如下

public string Abbreviation(string str)
{
if (str == null)
{
return null;
}
int strWidth = FontWidth(txtName.Font, txtName, str);
//获取label最长可以显示多少字符
int len = label.Width * str.Length / strWidth;
if (len > 3 && len < str.Length)
{
return str.Substring(0, len - 3) + "...";
}
else
{
return str;
}
}

/// <summary>
/// 获取字符串在 font时的长度
/// </summary>
private int FontWidth(Font font, Control control, string str)
{
using (Graphics g = control.CreateGraphics())
{
SizeF siF = g.MeasureString(str, font);
return (int)siF.Width;
}
}

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/laorer/archive/2010/01/07/5148510.aspx

 Graphics.MeasureString

博文 来自: ayliang
没有更多推荐了,返回首页