| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1646 人关注过本帖
标题:怎样随机在 panel容器中 排布 button 控件
只看楼主 加入收藏
hcx888
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2013-4-17
结帖率:70%
收藏
已结贴  问题点数:18 回复次数:16 
怎样随机在 panel容器中 排布 button 控件
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册

就好像,上图一样,三个容器里面是有 三个按钮控件的,当我点击一下 按钮4 三个容器里面的按钮控件会出现   

问题:怎么可以 让那三个按钮 随机 排布在不同的容器里面 (比如 按钮1 可以在 容器 1,2,3 都可以出现)

如果我不止三个容器和三个按钮,也怎么解决····
搜索更多相关主题的帖子: 按钮 button 
2013-05-08 12:33
hcx888
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2013-4-17
收藏
得分:0 
求助
2013-05-08 12:33
lantian8134
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:8
帖 子:115
专家分:789
注 册:2013-1-11
收藏
得分:18 
首先我不知道你的button是不是需要动态生成,我就当你已经在界面中拉好了。
然后有多少个panel在窗体上放好,每个panel中放好一个button按钮,再把所有的panel放到一个数组中,最后调用如下方法就行了
程序代码:
private void ShowButton(Panel[] panels)
        {
            if (panels == null) return;
            Random random = new Random();
            int count = panels.Length;
            Button temp;
            for (int i = 0; i < count; i++)
            {
                int val = random.Next(count);
                if (val != i)
                {
                    temp = panels[i].Controls[0] as Button;
                    panels[i].Controls.Clear();
                    panels[i].Controls.Add(panels[val].Controls[0] as Button);
                    panels[val].Controls.Clear();
                    panels[val].Controls.Add(temp);
                }
            }
        }

 
2013-05-08 19:27
hcx888
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2013-4-17
收藏
得分:0 
回复 3楼 lantian8134
按钮我一开始是 在容器里面隐藏起来的 每个容器只放一个按钮的 每个容器都改了名字是 P1 P2 P3 到 P32  按钮也是 button1 到 button32  那怎么写啊?

[ 本帖最后由 hcx888 于 2013-5-9 16:49 编辑 ]
2013-05-09 16:37
lantian8134
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:8
帖 子:115
专家分:789
注 册:2013-1-11
收藏
得分:0 
程序代码:
private void button4_Click(object sender, EventArgs e)
        {
            Panel[] panels=new Panel[] { panel1, panel2, panel3 };//填充panels数组,你有32个全部加进去
            foreach (Panel p in panels)
                ((Button)p.Controls[0]).Visible = true;
            ShowButton(panels);
        }
收到的鲜花
  • hcx8882013-05-10 18:17 送鲜花  3朵   附言:我很赞同
2013-05-10 13:09
hcx888
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2013-4-17
收藏
得分:0 
非常感谢
2013-05-10 18:17
hcx888
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2013-4-17
收藏
得分:0 
回复 5楼 lantian8134
有点问题了,测试了几遍

((Button)p.Controls[0]).Visible = true;

 如果 有一个容器没有放东西的时候,这一句就报错了

图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 hcx888 于 2013-5-10 21:12 编辑 ]
2013-05-10 21:09
lantian8134
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:8
帖 子:115
专家分:789
注 册:2013-1-11
收藏
得分:0 
程序代码:
foreach (Panel p in panels)
            {
                if (p.HasChildren)
                    ((Button)p.Controls[0]).Visible = true;
            }                
那就多加一个判断
2013-05-10 21:45
hcx888
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2013-4-17
收藏
得分:0 
回复 8楼 lantian8134
还是不行喔,加了判断还是会同样一句代码出异常
2013-05-10 22:06
lantian8134
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:8
帖 子:115
专家分:789
注 册:2013-1-11
收藏
得分:0 
异常信息呢,我想不会是同一个异常了吧,还有你panel中是不是还有别的控件?
2013-05-10 22:16
快速回复:怎样随机在 panel容器中 排布 button 控件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018291 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved