【问题标题】:List of notices, which control is best choice?通知列表,哪个控件是最佳选择?
【发布时间】:2011-01-12 12:05:43
【问题描述】:

我想使用控件来通知用户正在发生的事情和已经完成的事情。它就像一个多行文本框,每一行都包含一个通知,例如:

Connecting to database...done
Current datetime: 
Inserting data into database 10/1000...done
Inserting data into database 20/1000...done
...
Inserted data into database
Current datetime:

我尝试了文本框,但操作多行似乎太复杂了。

有没有更好的控制来做到这一点?如果文本框是最好的选择,那我该怎么做呢?

提前致谢!

【问题讨论】:

  • 添加评论“'将数据库插入数据库'让我咯咯笑”来发表评论。

标签: c# winforms user-interface controls


【解决方案1】:

我会使用一个列表框。将其设置为 SelectionMode.None。添加到项目集合。如果您有足够的行来滚动屏幕,则需要手动将滚动条调整到底部。通过将列表框 TopIndex 设置为行数 - 1。

【讨论】:

  • Listbox 似乎是更容易的方法。我喜欢它:D。但有一个缺点:用户无法选择或复制文本日志。我正在考虑。
【解决方案2】:

我见过人们使用列表框和文本框。我通常使用 RichTextBoxes,因为这样我可以轻松地应用一些简单的样式和颜色,但这可能有点过头了。

我在我的一个“随便玩”的项目中发现了这种方法:

private void writeToLog(String text, SolidColorBrush color)
{
    TextRange tr = new TextRange(logTextBox.Document.ContentEnd, logTextBox.Document.ContentEnd);
    tr.Text = text;
    tr.ApplyPropertyValue(TextElement.ForegroundProperty, color);
}

【讨论】:

  • 这个问题被标记为“WinForms”:您在这里使用的是 WPF RichTextBox,而不是 WinForms。
猜你喜欢
  • 2020-08-10
  • 2018-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-27
  • 1970-01-01
  • 2011-08-18
  • 1970-01-01
相关资源
最近更新 更多