我的表单中有几个显示文件路径的文本框。大多数文件路径太长,无法在文本框中显示。是否有可能削减剩余文本并为其添加一些点字符,然后将其对齐?
例如:
如果路径为C:\Programs\anotherfolder\blabla\thisisatest.xml
文本框应显示:...lder\blabla\thisisatest.xml
如果我调整文本框的大小,其中的文本将随之调整大小/扩展 有没有办法自动执行此操作,可能通过文本框的Resize事件。
非常感谢。
答案 0 :(得分:0)
This可能会有所帮助。您可以在任何事件上调用此代码,例如将焦点移出文本框或在文本框中加载数据后。您需要在代码中的下一行替换文本框中的实际文本。
mySize = e.Graphics.MeasureString("This is a test", myFont);
答案 1 :(得分:0)
如果这是一个网页..
包含2个隐藏变量,如下所示
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:HiddenField ID="HiddenField2" runat="server" />
</div>
包括jquery和脚本如下
<script type="text/javascript">
$(document).ready(function () {
$('#TextBox1').focus(function () {
$('#TextBox1').val($('#HiddenField1').val());
});
$('#TextBox1').blur(function () {
$('#TextBox1').val($('#HiddenField2').val());
});
});
</script>
设置代码中的字段
string str = @"C:\Programs\anotherfolder\blabla\thisisatest.xml";
HiddenField1.Value = str;
if (str.Length > 10)
{
TextBox1.Text = "..." + str.Substring(str.Length - 10, 10);
HiddenField2.Value = TextBox1.Text;
}
只有在关注文本框时才会显示整个字符串。
以下是demo的样子。
如果这有用或者您有任何疑问,请告诉我
答案 2 :(得分:0)
使用此代码删除多余文本:
private string GetShortText(string longText)
{
int validTextSize = 27;
if (longText.Length <= validTextSize)
return longText;
return "..."+longText.Substring(longText.Length - validTextSize);
}
并使用上面的代码:
string longText = @"C:\Programs\anotherfolder\blabla\thisisatest.xml";
txtPath.Text=GetShortText(longText);
对于更改对齐方式,如果您的表单是Windows窗体,则可以使用此代码:
txtPath.TextAlign = HorizontalAlignment.Right;
或者,如果您的表单是WPF表单,请使用以下代码:
txtPath.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Right;