我有一个Windows应用程序,我从数据库中获取数据并将其绑定到标签。我使用计时器和滚动标签,当字符串大约是150个字符时,此工作正常,但当我有大约30000个字符的字符串时,它会挂起应用程序。标签中的大字符串导致应用程序挂起(C#Windows)
lblMsg1.AutoEllipsis = true;
private void timer1_Tick(object sender, EventArgs e)
{
try
{
if (lblMsg1.Right <= 0)
{
lblMsg1.Left = this.Width;
}
else
lblMsg1.Left = lblMsg1.Left - 5;
this.Refresh();
}
catch (Exception ex)
{
}
}
public void bindData()
{
lblMsg.Text = "Some Large text";
}
public void Start()
{
try
{
timer1.Interval = 150;
timer1.Start();
}
catch (Exception ex)
{
Log.WriteException(ex);
}
}
为什么这与字符串长度有关并导致应用程序挂起?提前致谢。
我不认为在C#的标签被设计为容纳这么多字符。它们被设计成对另一个对象的描述,例如一个文本框,单选按钮等。最有可能的大约250个字符不是30,000 –
@Kendo所以这是我的应用程序挂起的原因? –
可能有更好的控件可供使用,包括Visakh V A提到了多行支持,滚动条和只读属性的文本框。它也可能是文本存储在数据库中的方式。记录越大,从数据库中检索的时间越长。在这种情况下,将文本存储为二进制文件可能对您有帮助。看看这个答案:http://stackoverflow.com/questions/26926818/best-way-to-store-large-string-in-sql-server-database –