2012-10-24 69 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