我有3页的tabcontrol。在tabpages中放置listviews。列表视图可能比标签页本身更大。
我想在标签页上添加滚动条
我尝试使用以下来源解决此问题:
lvwAlbums.Parent = pctlDatabeheer.TabPages[1];
lvwAlbums.Left = 0;
lvwAlbums.Top = 0;
lvwAlbums.Width = pctlDatabeheer.TabPages[1].Width - 35;
lvwAlbums.Height = 1000;// pctlDatabeheer.TabPages[1].Height;
lvwAlbums.SmallImageList = iltListView;
lvwAlbums.FullRowSelect = true;
lvwAlbums.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
foreach (TabPage _Page in pctlDatabeheer.TabPages)
{
_Page.AutoScroll = true;
_Page.AutoScrollMargin = new System.Drawing.Size(20, 20);
_Page.AutoScrollMinSize = new System.Drawing.Size(_Page.Width, _Page.Height);
}
但滚动未显示。我错了什么?
有人能帮助我吗?
感谢yopu的帮助。
答案 0 :(得分:4)
我创建了一个新的Visual Studio WinForms项目。保持表单设计器完全清空并使用您的代码:
public Form1()
{
InitializeComponent();
// Make TabControl
TabControl tabControl1 = new TabControl();
tabControl1.TabPages.Add(new TabPage());
tabControl1.TabPages.Add(new TabPage());
tabControl1.Dock = DockStyle.Fill;
this.Controls.Add(tabControl1);
// Make long ListView and add to first tab
ListView listView1 = new ListView();
listView1.Location = new Point(0, 0);
listView1.Height = 1000;
tabControl1.TabPages[0].Controls.Add(listView1);
// Your code
foreach (TabPage _Page in tabControl1.TabPages)
{
_Page.AutoScroll = true;
_Page.AutoScrollMargin = new System.Drawing.Size(20, 20);
_Page.AutoScrollMinSize = new System.Drawing.Size(_Page.Width, _Page.Height);
}
}
完美无缺。我怀疑你有其他错误,但我看不到它或在没有看到你的代码的情况下排除故障。
编辑:现在您发布了更多代码,问题出在您的列表框中:
lvwAlbums.Parent = pctlDatabeheer.TabPages[1];
lvwAlbums.Left = 0;
lvwAlbums.Top = 0;
lvwAlbums.Width = pctlDatabeheer.TabPages[1].Width - 35;
lvwAlbums.Height = 1000;
lvwAlbums.SmallImageList = iltListView;
lvwAlbums.FullRowSelect = true;
// Here is the issue!
// Do not anchor to the bottom or scrolling won't work
lvwAlbums.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
不要将控件固定在底部。这就是问题所在。您无法锚定到底部然后滚动。其他锚点很好。