【问题标题】:Creating Scroll in splitpanel or tablelayoutpanel in C#在 C# 中的 splitpanel 或 tablelayoutpanel 中创建滚动
【发布时间】:2018-08-27 19:17:36
【问题描述】:

  • 第一张图片:使用 tablelayoutPanel
  • 第二张图片:tablelayoutPanel 的结果:我的标签超出了屏幕 当我将它们停靠在机器人上时
  • 第三张图片:使用拆分面板
  • 第四张图片:拆分面板的结果:消息溢出但未溢出 创建滚动

所以我正在创建一个在执行此操作时根据用户的问题做出响应的 BOT,我正在创建两个标签,一个在右侧打印用户的问题并在左侧打印 BOT 的响应,同时我希望滚动面板溢出,但不幸的是,或者可能缺乏我的方法,我在底部停靠标签时无法做到这一点 这是我标签的代码 (我是 C# 新手,请忽略幼稚的东西)

左侧(机器人):

Label label = new Label();
        label.Size = new Size(35, 20);
        label.Font = new Font("Microsoft Sans Serif", 8F);
        label.Text = "IceFrog : I am unable to understand you try expressing in other way";
        label.RightToLeft = RightToLeft.No;
        splitContainer1.Panel1.RightToLeft = RightToLeft.No;
        //label.BorderStyle = BorderStyle.Fixed3D;
        // label.BackColor = Color.LightBlue;
        label.Dock = DockStyle.Bottom;
        splitContainer1.Panel1.Controls.Add(label);

右侧(人类):

        Label label = new Label();
        label.Size = new Size(35, 20);
        label.Font = new Font("Microsoft Sans Serif", 8F);
        label.Text = "Human : "+textBox1.Text;
        label.RightToLeft = RightToLeft.No;
        splitContainer1.Panel2.RightToLeft = RightToLeft.No;
        label.TextAlign = ContentAlignment.BottomRight;
        //label.BorderStyle = BorderStyle.Fixed3D;
        // label.BackColor = Color.LightBlue;
        label.Dock = DockStyle.Bottom;
        splitContainer1.Panel2.Controls.Add(label);

【问题讨论】:

  • 我听不懂你试试
  • 开个玩笑,你认为人类站在左边会更自然吗? (从左到右阅读)
  • 我正在尝试使面板溢出并且无法使用这两种方法进行滚动
  • 我想使用聊天框类型的东西,您的消息显示在右侧,发件人的消息显示在左侧:3
  • 您不想为此使用标签控件。请改用只读 TextBox 或 RichTextBox 控件。

标签: c# forms winforms windows-forms-designer


【解决方案1】:

为每个面板更改AutoScrollMinSize

this.splitContainer1.Panel1.AutoScrollMinSize = new Size(1, 0);
this.splitContainer1.Panel2.AutoScrollMinSize = new Size(1, 0);

或者,您可以使用设计器执行相同操作

要保持新添加的项目可见(在底部),请将这些行添加到您的代码中

 splitContainer1.Panel1.VerticalScroll.Value = splitContainer1.Panel1.VerticalScroll.Maximum;
 splitContainer1.Panel2.VerticalScroll.Value = splitContainer1.Panel2.VerticalScroll.Maximum;

【讨论】:

  • 非常感谢@L_J。我的心一直在感谢你,谢谢你^^
猜你喜欢
  • 2011-09-15
  • 2012-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-15
  • 2013-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多