从文本框中获取前 52 个字符或更少
Getting the first 52 characters OR LESS from a textbox
private void timer1_Tick(object sender, EventArgs e) {
timer1.Stop();
richTextBox2.Text = "";
richTextBox2.Paste();
//this errors
label5.Text = "Clipboard: " + richTextBox2.Text.Substring(0, 52) + "...";
if (richTextBox2.Text == richTextBox3.Text) {
richTextBox3.Paste();
return;
}
else {
timer1.Start();
}
}
这是我的程序功能代码,它将成为剪贴板 Reader/Display。我一直在寻找一种方法来获取第一个或更少的特定数量的字符,但我遇到了一些麻烦。
我已经试过了richTextBox2.Text.Substring(0,52)
但是还是不行,有人可以帮我吗?
简单的方法是获取需要添加到结果中的子字符串。
string text = richTextBox2.Text.Length > 52 ? richTextBox2.Text.Substring(0,52) : richTextBox2.Text;
然后添加最多 52 个字符的文本。
Substring()
方法假定请求的字符数实际存在于字符串中,如果不是这种情况,它将抛出异常。您可以考虑编写一个自定义方法来安全地截断您的字符串:
public string Truncate(string s, int length, bool includeEllipsis = true)
{
// Make sure you consider nulls
if(String.IsNullOrEmpty(s))
{
return s;
}
if (s.Length > length)
{
// Return the substring and an optional ellipsis
return s.Substring(0, length) + (includeEllipsis ? "..." : "");
}
// The string was shorter than your requested length, so return it all
return s;
}
您的示例的用法可能如下所示:
label5.Text = "Clipboard: " + Truncate(richTextBox2.Text, 52);
异常是因为字符串少于52个字符。您可以根据字符串的大小获取子字符串(检查它是否超过 52)。例如
var result = richTextBox2.Text.Substring(0,Math.Min(52,richTextBox2.Text.Length));
如果要消除 Math.Min,另一种可能的方法是使用 Linq
var result = new string(richTextBox2.Text.Take(52).ToArray());
private void timer1_Tick(object sender, EventArgs e) {
timer1.Stop();
richTextBox2.Text = "";
richTextBox2.Paste();
//this errors
label5.Text = "Clipboard: " + richTextBox2.Text.Substring(0, 52) + "...";
if (richTextBox2.Text == richTextBox3.Text) {
richTextBox3.Paste();
return;
}
else {
timer1.Start();
}
}
这是我的程序功能代码,它将成为剪贴板 Reader/Display。我一直在寻找一种方法来获取第一个或更少的特定数量的字符,但我遇到了一些麻烦。
我已经试过了richTextBox2.Text.Substring(0,52)
但是还是不行,有人可以帮我吗?
简单的方法是获取需要添加到结果中的子字符串。
string text = richTextBox2.Text.Length > 52 ? richTextBox2.Text.Substring(0,52) : richTextBox2.Text;
然后添加最多 52 个字符的文本。
Substring()
方法假定请求的字符数实际存在于字符串中,如果不是这种情况,它将抛出异常。您可以考虑编写一个自定义方法来安全地截断您的字符串:
public string Truncate(string s, int length, bool includeEllipsis = true)
{
// Make sure you consider nulls
if(String.IsNullOrEmpty(s))
{
return s;
}
if (s.Length > length)
{
// Return the substring and an optional ellipsis
return s.Substring(0, length) + (includeEllipsis ? "..." : "");
}
// The string was shorter than your requested length, so return it all
return s;
}
您的示例的用法可能如下所示:
label5.Text = "Clipboard: " + Truncate(richTextBox2.Text, 52);
异常是因为字符串少于52个字符。您可以根据字符串的大小获取子字符串(检查它是否超过 52)。例如
var result = richTextBox2.Text.Substring(0,Math.Min(52,richTextBox2.Text.Length));
如果要消除 Math.Min,另一种可能的方法是使用 Linq
var result = new string(richTextBox2.Text.Take(52).ToArray());