2012-10-24 68 views
-2

嗨,任何人都可以告诉我如何创建一个类似于我在这里发布的图片的自定义框架。框架应该根据放置在其中的按钮进行调整。 enter image description here如何使用按钮创建自定义框架......?

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

我的代码:

私人无效的button1_Click(对象发件人,EventArgs的){

 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); 
      } 

但我不知道如何创建一个框架,并相应安排。

+0

你到目前为止尝试过什么?您是否阅读过至少一篇关于Windows Forms的教程? –

+0

那么,如果你还没有尝试过什么,你什么都不会做。请阅读并尝试一些关于winforms的内容,然后你就可以自己做。只是一个输入,如果考虑到其中所有控件的宽度和高度,您的框架将可调整大小。好好享受。 – Sylca

+0

@Sylca:现在,我已经添加了代码,所以现在可以指导我PLZ ..希望你有我的问题,这只是我需要创建一个框架与按钮放置在里面,框架应该是可重新分级。 – jagadisha

回答

1

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

2)放置并放大一些按钮。

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

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

.Net 4中有6个容器控件:Panel,SplitPanel,TabControl,TableLayoutPanel和FlowLayoutPanel。我认为一个Panel可以满足你的需求,所以首先在你的Form上添加一个Panel控件。根据需要调整它的大小。

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

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

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

a)比例:所有放大比例均按比例扩大至容器。 b)与固定间距伪比例。您可以在按钮之间设置一个固定的间距,并调整它们的大小以保持相同的间距由于“a”是最简单的方法,我会告诉你如何去做。

1)创建一个像这样的表格。填充在容器中的按钮的位置的值时的形式是在设计(不运行)

Position of each button in the layout

2)在调整尺寸事件:

2.1)确定缩放因子X和Y.让他们叫factorX和FactorY

2.2)每个按钮的新位置将是它的原始位置乘以缩放因子。例如,为Button1,和supossing该屏幕在宽和3倍膨胀2X在heigth:

顶部:10×2 = 20 左:10×3 = 30

2.3)每个按钮尺寸将是

宽度:100×2 = 200 Heigth:100×3 = 300

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

通过因子调整的原始尺寸等等。 ..

+0

你是男人Y. Ecarri !!! – Sylca