C# winform 实现隐藏布局和显示布局

C# winform 实现隐藏布局和显示布局

今天写代码时,提出一个需求,点击按钮的时候,显示隐藏的控件,再次点击,继续隐藏控件。

思路是,用 TableLayout 的百分比布局来实现。

我的是一列三行的布局,隐藏第二个布局,剩余两个布局自动按照百分比填充

      private void HideSecondRow()
        {
            // 隐藏第二行并重新分配百分比
            tableLayoutPanel2.RowStyles[1].SizeType = SizeType.Absolute;
            tableLayoutPanel2.RowStyles[1].Height = 0;

            // 重新分配第一行和第三行的百分比
            tableLayoutPanel2.RowStyles[0].SizeType = SizeType.Percent;
            tableLayoutPanel2.RowStyles[0].Height = 30f;
            tableLayoutPanel2.RowStyles[2].SizeType = SizeType.Percent;
            tableLayoutPanel2.RowStyles[2].Height = 70f;

            // 隐藏第二行中的控件
            panel4.Visible = false;

            // 强制刷新布局
            tableLayoutPanel2.PerformLayout();
        }

        private void ShowSecondRow()
        {
            // 恢复第二行
            tableLayoutPanel2.RowStyles[1].SizeType = SizeType.Percent;
            tableLayoutPanel2.RowStyles[1].Height = 30f;

            // 恢复原来的百分比分配
            tableLayoutPanel2.RowStyles[0].SizeType = SizeType.Percent;
            tableLayoutPanel2.RowStyles[0].Height = 30f;
            tableLayoutPanel2.RowStyles[2].SizeType = SizeType.Percent;
            tableLayoutPanel2.RowStyles[2].Height = 40f;

            // 显示第二行中的控件
            panel4.Visible = true;

            // 强制刷新布局
            tableLayoutPanel2.PerformLayout();
        }

        // 点击显示
        private void high_setting_btn_Click(object sender, EventArgs e)
        {
            ShowSecondRow();
        }
        
        // 退出保存
        private void exit_camera_btn_Click(object sender, EventArgs e)
        {
            HideSecondRow();
        }
posted @ 2025-11-12 15:02  杰西卡若  阅读(7)  评论(0)    收藏  举报