【问题标题】:How to mange a listbox inside a tab control如何管理选项卡控件内的列表框
【发布时间】:2013-05-23 06:58:40
【问题描述】:

这是我第一次尝试使用选项卡控件构建一些东西。

起初我在 .NET 4 C# 中制作了一个小应用程序,它在其主窗口中有一个独立的列表框,现在我想添加一个选项卡控件并将列表框移动到其中一个选项卡和一个列表视图到另一个选项卡,所以我也可以显示图标。

我面临的问题如下:

1) 我现在将列表框动态添加到选项卡控件,如下所示:

private ListBox listBoxMember = new ListBox();
public Form1()
{
  listBoxMember.Size = tab1.Size;
  tab1.Controls.Add(listBoxMember);
}

启动应用程序时,似乎列表框不适合整个选项卡,我可以看到它在选项卡内的边框.. 我怎样才能将列表框完全放入选项卡中,以便用户看起来选项卡本身就像一个列表框?

2) 在我进行更改之前,我创建了一个上下文菜单,该菜单在右键单击鼠标时通过列表框的鼠标按下事件激活。现在在选项卡内添加列表框后,单击鼠标时菜单不会打开。如何使用我制作的上下文菜单,并以与列表框是独立控件时相同的方式使用它?

【问题讨论】:

    标签: c# winforms listbox tabcontrol mousedown


    【解决方案1】:

    要使用 ListBox 填充选项卡,请使用 Fill 属性。

    listBoxMember.Dock = DockStyle.Fill;
    

    此外,由于您现在动态创建 ListBox,您还需要动态设置 ContextMenu。

    listBoxMember.ContextMenu = myContextMenu;
    

    还要确保为 listBoxMember 命名,以便您可以在 tab1.Controls 集合中找到它。

    listBoxMember.Name = "listBoxMember";
    tab1.Controls["listBoxMember"];
    

    【讨论】:

    • 我尝试将列表框设为静态,然后将其绘制在选项卡内并将停靠属性更改为填充,它看起来确实更好,但仍然无法正确填充。你仍然可以看到边框的列表框,它看起来像一个框架内的框架......
    • 我认为您看到的是标签页本身的填充。设置 tab1.Padding = 0 看看这是否是你想要的。
    • 这没有帮助..我尝试更改填充和边距,但我仍然看到的是列表框的边界,因为我在选项卡内绘制它
    • 也许您应该将控件添加到 TabPage:tab.TabPages[0].Controls.Add(..)
    • @Robert Aguilar 我已经用解决我告诉你的问题的行编辑了你的答案
    猜你喜欢
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多