剪切文本以适合文本框宽度,然后右对齐
本文关键字:文本 然后 右对齐 | 更新日期: 2023-09-27 18:02:24
我有几个文本框在我的表单显示文件路径。大多数情况下,文件路径太长,无法在文本框中显示。是否有可能削减多余的文本,并追加一些点字符,然后对其进行对齐?
例如:
如果路径为C:'Programs'anotherfolder'blabla'thisisatest.xml
文本框应该显示:...lder'blabla'thisisatest.xml
如果我调整文本框的大小,其中的文本也会随之调整/展开。
是否有一种方法可以自动做到这一点,也许通过调整文本框的大小事件。
如果您正在根据输入的文本调整文本框的大小,这可能会有所帮助。您可以在任何事件中调用此代码,例如当您将焦点移出文本框或在数据加载到文本框中时。您需要在代码的下一行替换文本框的实际文本。
mySize = e.Graphics.MeasureString("This is a test", myFont);
如果这是一个网页…
包含如下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;
}
只在聚焦于文本框时显示整个字符串。
下面是一个演示。
让我知道这是否有帮助,或者如果你有任何疑问
使用以下代码删除多余的文本:
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;