从表单 c# 向控件用户发送参数,visual Studio

Sending parameters to a control user from a form c#,visual Studio

我正在尝试从我的主窗体使用我的控制用户的功能,我的代码是下一个:

chatbox bbl = new bunifchat.chatbox();
            bbl.sendmessage("a");

chatbox 是我的控制用户,我正在尝试使用函数 sendmessage 发送字符串,但没有任何反应。 这是我控制用户中的功能:

public void sendmessage(String message)
        {
            bubble bbl = new bunifchat.bubble(message);//this is another control user 
            bbl.Location = bubble1.Location;
            bbl.Size = bubble1.Size;
            bbl.Anchor = bubble1.Anchor;
            bbl.Top = bbl_old.Bottom + 10;
            panel2.Controls.Add(bbl);


            panel2.VerticalScroll.Value = panel2.VerticalScroll.Maximum;

            bbl_old = bbl;  
        }

首先您需要确保您使用的是正确的控件。

chatbox bbl = new bunifchat.chatbox();
bbl.sendmessage("a");

这将创建一个新的聊天框对象并在其上调用一个方法。但是,除非这个实际对象被添加到您的主窗体的控件中,否则它不是 UI 的一部分,并且不会发生任何事情。您可能希望将 Chatbox 控件添加到设计器中的表单,为其命名,然后只调用该对象的方法:

myChatbox.sendmessage("a");

第二个问题是您的发送方法试图通过对接单个控件来模拟列表。这可能会导致问题。更好的解决方案是使用 listView.

第三个问题是sendmessage没有invalidate the control。有时需要这样做以确保 windows 使用最新更新重绘控件。这可能是由 Control.Add 隐式完成的,但是每当有东西没有显示更新时,我通常会添加一个无效调用并检查是否解决了问题(如果没有解决问题则将其删除)。