我目前正在使用C#开发一个聊天应用程序,我想知道哪个表单控件允许为每个特定的消息添加文本保留控件,以便稍后在需要时进行修改。我想要这个,以便能够在通信的另一端收到消息时添加双勾号,就像在“Whatsapp”中一样。
我已经考虑过一种方法,包括每个消息对象触发事件(如“发送”,“收到”......)当它发生变化时,由相应的表单控件作为视图进行监听,添加上面提到的剔
有关如何实现这一目标的任何建议?我试过TextBox但是Lines属性强制控制os索引,我希望它完全由事件驱动。目前我坚持使用DataGridView,但是我几乎没有取得任何进展。
谢谢!
答案 0 :(得分:1)
没人准备好控制我能想到会做这个工作,我很害怕。
我会使用FlowLayoutPanel
并为添加到聊天中的每个文本块添加Label
。
您可以使用指定宽度的MeasureString
来获取Label
的高度。 (AutoSize
应该关闭。)
标签将获得FLP的宽度,您可以保留List<>
标签,可能包含一些元数据,如用户,时间等。
听起来像ChatDisplay类的一个很好的候选者来捆绑整个功能!
当然,由于标签是控件,您可以根据自己的喜好与ChatDisplay进行通信,甚至可以与外部通信对象进行通信。并且ChatDisplay类可以随意实现您需要的任何内容。如有必要,您也可以将标签包装在ChatItem类中。
比挖掘DGV强迫它做事情更具有可扩展性,但这并不意味着......