C#WinForms |单击按钮时添加标签

时间:2016-09-19 06:20:12

标签: c# winforms labels

老实说,我不知道如何构建我的问题。但我的想法是,我想在我们的案例研究中复制facebook messenger的ui。我们的任务是制作一个猜谜游戏 我不知道我将如何编码我的想法。我的计划是每次点击发送按钮时添加一个新标签,添加附加标签的面板将被扩展,以便屏幕看起来是滑动的。

这是winform的截图。

这是我的btnSendClicked初始代码。

private void btnSend_Click(object sender, EventArgs e)
    {
        Label lblnew = new System.Windows.Forms.Label();
        lblnew.Location = new Point(50, 50);
        lblnew.Text = txtMessage.Text;
        lblnew.AutoSize = true;
        lblnew.BackColor = System.Drawing.Color.LightGray;
        lblnew.Font = new System.Drawing.Font("Microsoft JhengHei UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
        pnlGame.Controls.Add(lblnew);
    }

1 个答案:

答案 0 :(得分:0)

您需要跟踪您在Panel上呈现的标签,以便管理您的滚动机制,这可以通过循环算法来完成:

循环浏览Label

中的所有pnlGame控件
  • 如果当前标签的顶部位置小于或等于pnlGame的顶部,则隐藏标签(Visible = false)。这同样适用于底部。 (删除滚动时不应显示的所有标签),否则,取消隐藏标签以将其重新显示。

将上述逻辑放入方法,例如void RefreshVisiblePanelMessages()

点击按钮生成新消息时,将新消息作为Label添加到pnlGame,然后拨打RefreshVisiblePanelMessages();更新列表。