将列表框更新为最近的项目c#

时间:2017-12-20 04:14:45

标签: c# listbox

我有2个程序:客户端和服务器。

此客户端将每隔1分钟不断向服务器发送数据(temp,payload,clientID)。服务器将在其列表框中显示数据。

问题是,我无法让我的列表框显示最近的数据 客户。

至于现在,我在我的printMessage方法中使用了以下内容。

this.listBox1.Refresh();

以下是我的完整printMessage方法:

 private void printMessage(string x)
    {
        //listBox1.Items.Add(DateTime.Now + x);
        //return;
        if (x.Trim().Length == 36)
        {
            if (this.listBox1.InvokeRequired)
            {
                printMessageCallback d = new printMessageCallback(printMessage);
                this.Invoke(d, new object[] { x });
            }
            else
            {
                this.listBox1.Items.Add("Client ID :" + x);
                this.listBox1.Refresh();
            }
            //sendtoAgent();

        }
        else if (x.Length == 1)
        {
            if (this.listBox1.InvokeRequired)
            {
                printMessageCallback d = new printMessageCallback(printMessage);
                this.Invoke(d, new object[] { x });
            }
            else
            {
                this.listBox1.Items.Add("Barrier Payload :" + x);
                this.listBox1.Refresh();
            }
        }
        else
        {
            if (this.listBox1.InvokeRequired)
            {
                printMessageCallback d = new printMessageCallback(printMessage);
                this.Invoke(d, new object[] { x });
            }
            else
            {
                this.listBox1.Items.Add("" + x);
                this.listBox1.Refresh();
            }

        }

    }

到目前为止,它还不起作用。

请帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

有时ListBox SelectionMode会在SelectionMode = None时导致问题。

你可以尝试

listBox1.SelectionMode = SelectionMode.MultiExtended;
listBox1.Refresh();
listBox1.SelectionMode = SelectionMode.None;