2014-02-07 19 views
2

我在Visual Studio C#中創建了一個帶有文本框和保存按鈕的窗體,在文本框中輸入文本並單擊保存在垂直另一窗體上創建一個動態按鈕但是當我用文本框中的新文本重新運行我的應用程序時,或者重新啓動我的應用程序時,則上一個按鈕會丟失,因此請告訴我一些邏輯或代碼,以便如何將該動態按鈕永久保存在flowlayout面板中並當保存新文本時,它會在先前創建的文本之下創建另一個按鈕,依此類推。即使在重新啓動計算機時,如何永久保存動態按鈕

回答

1

爲了在運行時保存某些內容,您必須使用文件或使用Application Settings。關於應用程序設置的一個很好的參考可以在MSDN找到。

您可以創建一個像ButtonsList(您必須編寫一個類)類型的設置來存儲創建的按鈕。我說ButtonsList考慮到你想保存每個按鈕的更多屬性。如果您不需要保存除標題之外的其他任何內容,則可以將該屬性設置爲字符串數組。

此外,一個非常重要的事情,是點擊Save按鈕後,你必須調用

Properties.Settings.Default.Save(); 

,以保持所保存的數據,而你的應用程序不上。

步驟:

  1. 在Visual Studio中,單擊PROJECT菜單項。
  2. 點擊<project-name> Properties項目。
  3. 在打開的窗口中,轉到左側窗格中的Settings
  4. 在窗口中間的表格中點擊Setting,然後輸入您要創建的設置的名稱(例如dynamicButtons)。
  5. 點擊string下拉列表,然後選擇System.Colletions.Specialized.StringCollection
  6. 轉到您的程序,並在Save點擊事件類型:

    Properties.Settings.Default.dynamicButtons.Add("button1_caption"); Properties.Settings.Default.Save();

下面是的ButtonInfo個簡單的集合稱爲ButtonsCollection代碼:

class ButtonInfo 
{ 
    public string Caption { get; set; } 
    public Point Location { get; set; } 
    public Size ButtonSize { get; set; } 
    public ButtonInfo(string caption, Point location, Size size) 
    { 
     this.Caption = caption; 
     this.Location = location; 
     this.ButtonSize = size; 
    } 
} 

class ButtonsCollection : System.Collections.CollectionBase 
{ 
    public void Add(ButtonInfo bi) 
    { 
     List.Add(bi); 
    } 

    public void Remove(int index) 
    { 
     if (index > Count - 1 || index < 0) 
     { 
      System.Windows.Forms.MessageBox.Show("Index not valid!"); 
     } 
     else 
     { 
      List.RemoveAt(index); 
     } 
    } 

    public ButtonInfo Item(int index) 
    { 
     return (ButtonInfo)List[index]; 
    } 
} 

由於Visual Studio中的設置的可視化設計器不允許y要使用自定義類型設置,您必須執行一些手動工作。你會發現更多有關創建這些自定義設置here, on MSDN.

希望我的努力不是無用:)

+0

太感謝你了,非常豐富,但與按鈕我也想保存它的位置在面板的FlowLayout,使生成的下一次按鈕時,應正確低於前一個創建的文本一起。那麼怎麼做也是..? – Teesha

+0

請稍等一下,讓我寫你的代碼! – Victor

+0

是它似乎是真的再次有幫助我...謝謝... – Teesha

1

你將要保存你需要的信息來重新創建按鈕(可能是標籤,位置或順序)到某種形式的配置文件。當你啓動應用程序時,檢查文件是否存在。如果是,請將其重新讀入,然後重新創建按鈕。

+0

你能提供給我就怎麼做,有些鏈接? – Teesha

相關問題