2012-04-16 56 views
1

我需要在運行從textbox1得到的字符串輸入流程圖時創建。 表格大小爲700 * 450,並且允許在每個字母(來自輸入字符串的字符)之間滾動。(在輸出中)必須是(在按鈕上顯示的)箭頭 * 整個圖表必須上的按鈕來ehxibited * 例如,用於該輸入的字符串:「ABZAZAZA」 每個字母有asuitable顏色的按鈕的背景應該在被着色c#程序運行時按鈕的流程圖

程序應該是「打印」: A→B→Z→A→Z→A→Z→ A→

箭頭按鈕的大小:34 * 23 字母按鍵的尺寸:34 * 29

我的代碼的問題,該流程圖未顯示

繼承人的代碼:

public void DrawingSystem(string st) 
    { 
     shura_acid = 12; 
     tur_acid = 185; 

     for (int i = 1; i <= st.Length; i++) 
     { 
      if ((i % 7) == 0) 
      { 
       OpenNewLine(); 
      } 
      CreateAcid(st[i - 1], i); 
      shura_acid = shura_acid + 24 + 68; 
     } 
    } 

    public void OpenNewLine() 
    { 
     tur_acid = tur_acid + 29 + 12;//34 because the size of button,12 because space between lines 
     shura_acid = 12; 
    } 

    public void CreateAcid(char letter, int i) 
    { 
     //create acid 
     Button acid = new Button(); 
     acid.Location = new System.Drawing.Point(shura_acid, tur_acid); 
     acid.Name = "acid" + i; 
     acid.Size = new System.Drawing.Size(34, 29); 
     acid.TabIndex = 100 + i; 
     acid.Text = Convert.ToString(letter); 
     switch (letter) 
     { 
      case 'A': acid.BackColor = System.Drawing.Color.Fuchsia; break; 
      case 'C': acid.BackColor = System.Drawing.Color.Pink; break; 
      case 'D': acid.BackColor = System.Drawing.Color.Gray; break; 
      case 'F': acid.BackColor = System.Drawing.Color.Azure; break; 
      case 'G': acid.BackColor = System.Drawing.Color.Red; break; 
      case 'H': acid.BackColor = System.Drawing.Color.Aqua; break; 
      case 'I': acid.BackColor = System.Drawing.Color.Lime; break; 
      case 'K': acid.BackColor = System.Drawing.Color.Yellow; break; 
      case 'L': acid.BackColor = System.Drawing.Color.Olive; break; 
      case 'M': acid.BackColor = System.Drawing.Color.Coral; break; 
      case 'N': acid.BackColor = System.Drawing.Color.SaddleBrown; break; 
      case 'P': acid.BackColor = System.Drawing.Color.Teal; break; 
      case 'Q': acid.BackColor = System.Drawing.Color.Blue; break; 
      case 'R': acid.BackColor = System.Drawing.Color.Orange; break; 
      case 'S': acid.BackColor = System.Drawing.Color.Green; break; 
      case 'T': acid.BackColor = System.Drawing.Color.SteelBlue; break; 
      case 'V': acid.BackColor = System.Drawing.Color.DarkViolet; break; 
      case 'W': acid.BackColor = System.Drawing.Color.Crimson; break; 
      case 'X': acid.BackColor = System.Drawing.Color.MediumAquamarine; break; 
      default: acid.BackColor = System.Drawing.Color.Gold; break; 
     } 


     //create arrow 
     Button arrow = new System.Windows.Forms.Button(); 
     arrow.Location = new System.Drawing.Point(shura_acid + 34 + 12, tur_acid); 
     arrow.Name = "acid" + i; 
     arrow.Size = new System.Drawing.Size(34, 23); 
     arrow.TabIndex = 100 + i; 
     arrow.Text = "-->"; 
     arrow.UseVisualStyleBackColor = false; 


    } 

回答

1

我要一刺在它。沒有我的代碼在哪裏看到你實際上將acidarrow按鈕添加到容器。

你需要的東西是這樣的:

this.Controls.Add(acid); 

this.Controls.Add(arrow); 

更改this.Controls你想讓他們出現在容器

+0

我無法想象我有多麼愚蠢。」米謝謝! – Noam650 2012-04-16 14:03:19