c# winform 中 panel显示与隐藏,并和其相应的按钮连接起来。

独坐空城思旧梦i 2017-06-14 01:40:32
新手不懂c#,实训操作题目,我查过了好多panel可以叠加,做个界面,如果 先将所有的panel隐藏,然后单击侧边按钮出现其相应的panel。
如图。。。
求大神速解。
...全文
4137 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
IEEE_China 2017-06-14
  • 打赏
  • 举报
回复

 private void button1_Click(object sender, EventArgs e)
        {
            
            SetVisible(button1.Name);
            
        }

        private void button2_Click(object sender, EventArgs e)
        {
            SetVisible(button2.Name);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            SetVisible(button3.Name);
        }

     /// <summary>
        /// 隐藏其他panel,显示button对应panel
        /// </summary>
        /// <param name="buttonName">点击的button.Name</param>
        protected void SetVisible(string buttonName)
        {
            string pannelPrefix = "panel";
            string buttonPrefix = "button";
          
            foreach (Control c in this.Controls)
            {
                if(c is Panel)
                {
                    if (c.Name.Replace(pannelPrefix, "") == buttonName.Replace(buttonPrefix, ""))
                    {
                        c.Visible = true;
                    }
                    else
                    {
                        c.Visible = false;
                    }
                }
            }
        }
  • 打赏
  • 举报
回复
引用 5 楼 duanzi_peng 的回复:
[quote=引用 2 楼 qiuliang601567 的回复:]
[quote=引用 1 楼 duanzi_peng 的回复:]
那就在 button按钮的Click事件中 让对应的Panel可见就行了。

大哥,发下代码吧,主要是不会代码。
就是好多panel全隐藏的代码和点击相应按钮显示相应的panel代码[/quote]
控件属性,事件触发等等 这些都是最基本的。 如果这些不熟悉就去做项目,建议先大概去学习一下基础知识,因为你还会问问题。

Panel隐藏:
Panel1.Visible = false;
Panel2.Visible = false;
// ......省略其它设置


点击按钮显示:
 private void btn1_Click(object sender, EventArgs e)
{
Panel1.Visible = true;
}
[/quote]
大神,我按你说的设置了,panel隐藏了,但是点击按钮却不能显示啊。
xuzuning 2017-06-14
  • 打赏
  • 举报
回复
BringToFront() 带到 Z 顺序的前面 SendToBack() 置于 Z 顺序的后面 你所有右下区域的 Panel 都是重叠的,始终只有一个可见 控制显示和隐藏的话,需要先令所有的 Panel 的 Visible = false,再令所需的 Panel 的 Visible = true 很是繁琐! 不如将指定的 Panel 放到最前面 比如 button1 对应 panel1 button2 对应 panel2 button3 对应 panel3 就在 button1 的 Click事件中 panel1.BringToFront(); button2 的 Click事件中 panel2.BringToFront(); button3 的 Click事件中 panel3.BringToFront();
wxstar8 2017-06-14
  • 打赏
  • 举报
回复
引用 4 楼 qiuliang601567 的回复:
[quote=引用 3 楼 wxstar8 的回复:] 也可以按下一个按钮加载一个对应的Panel
主要不会代码。[/quote] panelName.Controls.Clear();//清楚panel上的其他控件 PersonInfo personInfo = new PersonInfo();//PersonInfo 个人信息的用户控件名 panelName.Controls.Add(personInfo );
exception92 2017-06-14
  • 打赏
  • 举报
回复
引用 2 楼 qiuliang601567 的回复:
[quote=引用 1 楼 duanzi_peng 的回复:] 那就在 button按钮的Click事件中 让对应的Panel可见就行了。
大哥,发下代码吧,主要是不会代码。 就是好多panel全隐藏的代码和点击相应按钮显示相应的panel代码[/quote] 控件属性,事件触发等等 这些都是最基本的。 如果这些不熟悉就去做项目,建议先大概去学习一下基础知识,因为你还会问问题。 Panel隐藏:
Panel1.Visible = false;
Panel2.Visible = false;
// ......省略其它设置
点击按钮显示:
 private void btn1_Click(object sender, EventArgs e)
        {
            Panel1.Visible = true;
        }
  • 打赏
  • 举报
回复
引用 3 楼 wxstar8 的回复:
也可以按下一个按钮加载一个对应的Panel
主要不会代码。
wxstar8 2017-06-14
  • 打赏
  • 举报
回复
也可以按下一个按钮加载一个对应的Panel
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
那就在 button按钮的Click事件中 让对应的Panel可见就行了。
大哥,发下代码吧,主要是不会代码。 就是好多panel全隐藏的代码和点击相应按钮显示相应的panel代码
exception92 2017-06-14
  • 打赏
  • 举报
回复
那就在 button按钮的Click事件中 让对应的Panel可见就行了。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧