-2

嗨,谁能告诉我如何创建一个类似于我在这里发布的图片的定制框架。框架应根据放置在其中的按钮调整大小。在此处输入图像描述

上传的图片可能会提供更好的主意,我想创建类似的东西。那么如何在windows窗体中创建这样的框架呢?

我的代码:

私人无效按钮1_Click(对象发送者,EventArgs e){

        int start_x = Convert.ToInt32(textbox1.Text);
        int start_y = Convert.ToInt32(textbox2.Text);

        //Clear out the existing controls, we are generating a new table layout
        tableLayoutPanel1.Controls.Clear();

        //Clear out the existing row and column styles
        tableLayoutPanel1.ColumnStyles.Clear();
        tableLayoutPanel1.RowStyles.Clear();

        //Now we will generate the table, setting up the row and column counts first
        tableLayoutPanel1.ColumnCount = start_x;
        tableLayoutPanel1.RowCount = start_y;

        for (int x = 0; x < start_x; x++)
        {
            //First add a column
            tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));

           for (int y = 0; y < start_y; y++)
           {
                //Next, add a row.  Only do this when once, when creating the first column
                if (x == 0)
                {
                    tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.AutoSize));
                }

                //Create the control, in this case we will add a button
                Button cmd = new Button();
                cmd.Width = 120;
                cmd.Height = 60;
                cmd.BackColor = Color.LightGreen;
                cmd.FlatStyle = FlatStyle.Popup;
                cmd.Text = string.Format("ds");
                cmd.Click += new EventHandler(this.btnDynamicButton_Click);

                //Finally, add the control to the correct location in the table
                tableLayoutPanel1.Controls.Add(cmd, x, y);
            }

但我不知道如何创建该框架并相应地安排它。

4

1 回答 1

1

1) 创建一个新的 Windows 窗体。

2)在其中放置一些按钮并调整其大小。

3) 在表单中为 Resizing 事件添加一个处理程序。

4)根据resize事件中窗口的新大小调整按钮的大小和位置。

.Net 4 中有 6 个容器控件:Panel、SplitPanel、TabControl、TableLayoutPanel 和 FlowLayoutPanel。我认为 Panel 可以满足您的需求,因此首先将 Panel 控件添加到您的 Form。根据需要调整它的大小。

在面板中放置一个命令按钮。根据需要调整它的大小。选择它并按 F4 激活属性窗口。找到 FlatAppearance 属性并将其更改为 Flat。将背景颜色更改为白色,将文本属性更改为空字符串。现在你有一个白色按钮。复制并粘贴 3 次。根据需要放置按钮。

对于绿色按钮:开始为每个所需图像创建位图。创建一个命令按钮,将其更改为平面样式并像以前一样复制它。对于每个按钮,编辑 Image 属性并导入您创建的图像。

一旦你有了“静态”布局,你需要做一些数学运算。您必须决定使用哪种调整大小策略:

a) 成比例的:所有放大的都与容器成比例地膨胀。

b) 具有固定间距的伪比例。您设置按钮之间的固定间距并调整它们的大小以保持相同的间距。

因为“a”是最简单的方法,所以我会告诉你怎么做。

1)创建一个这样的表。当表单在设计器中(未运行)时,用容器中按钮的位置填充值

布局中每个按钮的位置

2) 在调整大小事件中:

2.1) 确定 X 和 Y 的比例因子。我们称它们为 factorX 和 FactorY

2.2)每个按钮的新位置将是其原始位置乘以缩放因子。例如,对于 Button1,并假设屏幕宽度扩大 2 倍,高度扩大 3 倍:

顶部:10 x 2 = 20 左侧:10 x 3 = 30

2.3)每个按钮的大小将是原始大小调整因子:

宽度:100 x 2 = 200 高度:100 x 3 = 300

底部:20+200 = 220 右侧:30+300 = 330

等等...

于 2012-10-26T07:04:35.880 回答