小弟现要用listbox动态添加控件在里面
看代码:
dindanbtn[] d=new dindanbtn[11];
for (int i = 0; i < 11; i++)
{
d[i] = new dindanbtn("订单提醒","你有一笔订单需签收",i);
listBox1.Controls.Add(d[i].getmypan());
}d[i].getmypan()这个返回的是个pannel,pannel纵坐标都做了控制,不是坐标问题
现在是这样,明明已经装不下了,但是listBox1不会出现下拉滚动条
把listBox1.Controls.Add(d[i].getmypan())换成listBox1.items.Add(d[i].getmypan())就会出现滚动条请问是什么原因,如何让添加进去的控件多了超出listbox就自动出现滚动条?
看代码:
dindanbtn[] d=new dindanbtn[11];
for (int i = 0; i < 11; i++)
{
d[i] = new dindanbtn("订单提醒","你有一笔订单需签收",i);
listBox1.Controls.Add(d[i].getmypan());
}d[i].getmypan()这个返回的是个pannel,pannel纵坐标都做了控制,不是坐标问题
现在是这样,明明已经装不下了,但是listBox1不会出现下拉滚动条
把listBox1.Controls.Add(d[i].getmypan())换成listBox1.items.Add(d[i].getmypan())就会出现滚动条请问是什么原因,如何让添加进去的控件多了超出listbox就自动出现滚动条?
解决方案 »
- 如何获得安装包中自定义的路径?
- 同样的问题,求助中。。。。。。。。。。。。。。
- Farpoint 控件问题。大侠帮忙解决一下。
- 怎样获取GridView模板中,控件的ClientID?
- Close一个窗口。该资源何时释放?
- 使用Process类时抛出异常:System.InvalidOperationException:进程性能记数器已禁用,因此无法执行所请求的操作。
- 从解密流转换成.jpg格式的文件,要经过哪些方法?搞不出要被炒呀,求救各位呀
- 对datagrid中显示的值直接进行修改,然后保存到数据库该怎么操作?
- 安装VS2003后运行程序后提示“当前用户没有安装MS Development Environment”这是为何?
- 请问在C#中如何防止(或提示)用户输入在文本框中的不能为字母????
- 给定几个textbox输入数据,然后将这些数据插入到数据库
- 怎么能把range 写进表达式
你添加为子控件了。
listBox1.items.Add
这才是添加列表。
listBox1.items.Add()
listBox1.Items.AddRange(d)
类似于qq好友列表,外面一个listbox,每个好友就是一个pannel
listBox1.Controls.Add(pannel)
当然要这样添加
如果listBox1.items.Add
界面是不会显示出子控件的。
简单点说
for (int i = 0; i < 11; i++)
{
pannel pannel=new pannel();
pannel.location=new point(0,i*50);
listBox1.Controls.Add(pannel1);
}
如此添加后,listbox1怎么才能显示滚动条?
能否给个小demo。不甚感激
这其实不是panel+两个标签,而是子项自绘若是子项HEIGHT都相等,属性DrawMode设置为OwnerDrawFixed,并设置Itemheight属性
若是不同的话设置为OwnerDrawVariable
private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
Graphics g = e.Graphics;
if (e.Index != -1)
{
Rectangle rect = e.Bounds;
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
{
g.FillRectangle(new SolidBrush(Color.FromArgb(252, 234, 164)), rect);
Rectangle temp = rect;
temp.Height--;
temp.Width--;
g.DrawRectangle(new Pen(Color.FromArgb(250, 226, 151)), temp);
}
else
{
g.FillRectangle(Brushes.White, rect);
}
string name = listBox1.Items[e.Index].ToString();
string time = (new FileInfo(Application.StartupPath + @"\MatchData\" + name)).CreationTime.ToString();
g.DrawString("文件名:" + name, new Font("微软雅黑", 10, FontStyle.Bold), new SolidBrush(Color.Black), new PointF(rect.X + 2, rect.Y + 1));
g.DrawString("创建时间:" + time, new Font("微软雅黑", 9, FontStyle.Regular), new SolidBrush(Color.LightSlateGray), new PointF(rect.X + 10, rect.Y + 21));
}
}