基于TabControl动态创建一组控件: private ListView CreateListView(string[] captions)
{
ListView lv = new ListView();
lv.Dock = DockStyle.Fill;
lv.View = View.Details;
lv.CheckBoxes = false;
lv.GridLines = true;
lv.FullRowSelect = true;
lv.MultiSelect = true;
int icount = captions.Length;
for (int i = 0; i < icount; i++)
{
ColumnHeader col = new ColumnHeader();
col.Text = captions[i];
col.Width = 80;
lv.Columns.Add(col);
}
return lv;
} private void button5_Click(object sender, EventArgs e)
{
for (int i = 0; i < 5; i++)
{
TabPage tp = new TabPage("page"+i.ToString());
tp.BackColor = Color.Transparent;
tc_main.TabPages.Add(tp);
//创建panel
Panel pl = new Panel();
pl.Parent = tp;
pl.BackColor = Color.Transparent;
pl.Dock = DockStyle.Top;
pl.Height = 21;
//创建listview
string[] captions = new string[5];
captions[0] = "caption1";
captions[1] = "caption2";
captions[2] = "caption3";
captions[3] = "caption4";
captions[4] = "caption5";
ListView lv= CreateListView(captions);
lv.Parent = tp;
}
}
结果如论我怎么做,panel总是盖住ListView的caption!!!
(仅仅创建listview是没有问题的)为什么,为什么,为什么????
{
ListView lv = new ListView();
lv.Dock = DockStyle.Fill;
lv.View = View.Details;
lv.CheckBoxes = false;
lv.GridLines = true;
lv.FullRowSelect = true;
lv.MultiSelect = true;
int icount = captions.Length;
for (int i = 0; i < icount; i++)
{
ColumnHeader col = new ColumnHeader();
col.Text = captions[i];
col.Width = 80;
lv.Columns.Add(col);
}
return lv;
} private void button5_Click(object sender, EventArgs e)
{
for (int i = 0; i < 5; i++)
{
TabPage tp = new TabPage("page"+i.ToString());
tp.BackColor = Color.Transparent;
tc_main.TabPages.Add(tp);
//创建panel
Panel pl = new Panel();
pl.Parent = tp;
pl.BackColor = Color.Transparent;
pl.Dock = DockStyle.Top;
pl.Height = 21;
//创建listview
string[] captions = new string[5];
captions[0] = "caption1";
captions[1] = "caption2";
captions[2] = "caption3";
captions[3] = "caption4";
captions[4] = "caption5";
ListView lv= CreateListView(captions);
lv.Parent = tp;
}
}
结果如论我怎么做,panel总是盖住ListView的caption!!!
(仅仅创建listview是没有问题的)为什么,为什么,为什么????
而list的DockStyle.Fill;
所以pl会跑到最上面的,覆盖是正常的
也就是说如果你pl比list的Z轴次序低,那pl就不会盖住list,而list则会充满除pl的所有空间
可以参考:http://blog.54master.com/index.php/586951/viewspace-20983
pl.SendToBack()
应该是先创建listview后再创建panel,
结贴,给分!
你这个问题的出现情况首先可以肯定的就是次序一定又问题具体你可以仔细看看designer中的代码一般都是有父容器的添加代码的