首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将TableLayoutPanel中的控件移动到另一个单元格,并将其还原回C#中?

如何将TableLayoutPanel中的控件移动到另一个单元格,并将其还原回C#中?
EN

Stack Overflow用户
提问于 2014-08-03 01:21:07
回答 1查看 3.8K关注 0票数 0

我正在尝试制作一个自定义控件,以响应屏幕分辨率。

我的想法很简单。

要实现这一点,我必须能够移动TableLayoutPanel单元格中的控件。

所以,我正在尝试下面的代码。

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void _btnMove_Click(object sender, EventArgs e)
        {
            tableLayoutPanel1.Height    += 30;
            tableLayoutPanel1.RowCount  = 3;
            tableLayoutPanel1.Controls.Add(flowLayoutPanel4, 0, 2);
            tableLayoutPanel1.SetColumnSpan(flowLayoutPanel4, 2);
        }

        private void _btnRestore_Click(object sender, EventArgs e)
        {
            tableLayoutPanel1.Controls.Add(flowLayoutPanel4, 6, 0);
        }
    }
}

看上去效果不错。

这是TableLayoutPanel的原始图像。

当我按下移动按钮时,

是的,tablelayoutpanel面板现在有3行,搜索和Excel按钮位于第3行。

现在我必须把它们恢复原状。

在这里,它似乎不太正常。

我试着把他们送到6科尔,0排的位置。

但它在另一个牢房里。

有人知道在哪里修吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-03 01:53:21

您需要逆转在_btnMove_Click方法中所做的一切。仍被设置为2的列跨度是导致其向下移动到第2行的原因。

代码语言:javascript
复制
private void _btnRestore_Click(object sender, EventArgs e)
{
    tableLayoutPanel1.Height -= 30;
    tableLayoutPanel1.RowCount = 2;
    tableLayoutPanel1.SetColumnSpan(flowLayoutPanel1, 1);
    tableLayoutPanel1.Controls.Add(flowLayoutPanel1, 6, 0);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25100779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档