哪个控件显示以后以编程方式编辑的文本

时间:2014-08-22 11:56:00

标签: c# winforms

我目前正在使用C#开发一个聊天应用程序,我想知道哪个表单控件允许为每个特定的消息添加文本保留控件,以便稍后在需要时进行修改。我想要这个,以便能够在通信的另一端收到消息时添加双勾号,就像在“Whatsapp”中一样。

我已经考虑过一种方法,包括每个消息对象触发事件(如“发送”,“收到”......)当它发生变化时,由相应的表单控件作为视图进行监听,添加上面提到的剔

有关如何实现这一目标的任何建议?我试过TextBox但是Lines属性强制控制os索引,我希望它完全由事件驱动。目前我坚持使用DataGridView,但是我几乎没有取得任何进展。

谢谢!

1 个答案:

答案 0 :(得分:1)

没人准备好控制我能想到会做这个工作,我很害怕。

我会使用FlowLayoutPanel并为添加到聊天中的每个文本块添加Label

您可以使用指定宽度的MeasureString来获取Label的高度。 (AutoSize应该关闭。)

标签将获得FLP的宽度,您可以保留List<>标签,可能包含一些元数据,如用户,时间等。

听起来像ChatDisplay类的一个很好的候选者来捆绑整个功能!

当然,由于标签是控件,您可以根据自己的喜好与ChatDisplay进行通信,甚至可以与外部通信对象进行通信。并且ChatDisplay类可以随意实现您需要的任何内容。如有必要,您也可以将标签包装在ChatItem类中。

比挖掘DGV强迫它做事情更具有可扩展性,但这并不意味着......