路径显示不下时,中间显示省略号
开发环境:vs2012 c#
//路径显示不下时,中间显示省略号
class cshowshortpath
{
public cshowshortpath(string str)
{
//统一成反斜杠
str = str.replace('/', '\\');
//收集反斜杆的位置
list<int> indexs = new list<int>();
for (int i = 0; i < str.length; i++)
{
if ('\\' == str[i])
{
indexs.add(i);
}
}
//收集可能的显示形式
m_strcanshows.add(str);
for (int j = indexs.count / 2, i = j - 1; ; )
{
m_strcanshows.add(getshortshow(ref str, ref indexs, i, j));
if ((!validindex(indexs,i)) && (!validindex(indexs,j)) )
{
break;
}
if ((indexs.count - 1 - j) > (i - 0))
{
j++;
}
else
{
i--;
}
}
}
public list<string> m_strcanshows = new list<string>();
private string getshortshow(ref string str, ref list<int> indexs, int indexleft, int indexright)
{
string str1 = "", str2 = "";
if (validindex(indexs,indexleft))
{
str1 = str.substring(0, indexs[indexleft]);
}
if (validindex(indexs,indexright))
{
str2 = str.substring(indexs[indexright] + 1, str.length - indexs[indexright] - 1);
}
return str1 + "..." + str2;
}
private bool validindex( list<int> indexs, int index)
{
return ( index >= 0 ) && ( index < indexs.count ) ;
}
};
下面的类,根据textbox的宽度显示文件路径:
public class cshow
{
public static void showsinglepathifnospace(string strpath, textbox txtbox)
{
imebase.cshowshortpath show = new imebase.cshowshortpath(strpath);
for (int i = 0; i < show.m_strcanshows.count; i++)
{
int ineedwidth = textrenderer.measuretext(show.m_strcanshows[i], txtbox.font).width;
if (txtbox.width > ineedwidth)
{
txtbox.text = show.m_strcanshows[i];
break;
}
}
}
}
下一篇: 关于小龙虾与龙虾的小知识
推荐阅读
-
css 文本单行显示溢出时出现省略号 多行显示溢出时出现省略号 首行缩进
-
路径显示不下时,中间显示省略号
-
html div内第二行文字显示不下的时候才用省略号代替 css实现
-
CSS文本溢出时以省略号的形式显示
-
当页面内容溢出或超出边界时显示省略号_html/css_WEB-ITnose
-
Linux系统登录新建用户时,shell开头为$,不显示用户名和路径的解决办法
-
css 文本单行显示溢出时出现省略号 多行显示溢出时出现省略号 首行缩进
-
表格单元格内容超出时显示省略号效果 - 弋痕夕
-
单行文本和多行文本溢出时显示省略号的css设置
-
CSS文字超出div或者span时显示省略号_html/css_WEB-ITnose