2017-03-17 46 views
0

我正在從表單上的文本框中複製字符串值並將其保存在設置中。我在這裏做的方式似乎有點長期。有沒有辦法使用字符串引用TextBox1.Text和My.Settings.Value1。如果是這樣,我可以循環並不斷更改字符串以指向不同的控件。看看我目前正在做的事情。如何使用Visual Basic對控件或設置進行讀寫操作

My.Settings.F1LabelCol0Save = F1LabelCol0.Text 
My.Settings.F1LabelCol1Save = F1LabelCol1.Text 
My.Settings.F1LabelCol2Save = F1LabelCol2.Text 
My.Settings.F1LabelCol3Save = F1LabelCol3.Text 
My.Settings.F1LabelCol4Save = F1LabelCol4.Text 
My.Settings.F1LabelCol5Save = F1LabelCol5.Text 
My.Settings.F1LabelCol6Save = F1LabelCol6.Text 
My.Settings.F1LabelCol7Save = F1LabelCol7.Text 
My.Settings.F1LabelCol8Save = F1LabelCol8.Text 
My.Settings.F1LabelCol9Save = F1LabelCol9.Text 
+0

如果我的回答能解決您的問題,請標明其按週期/支票受理標記在我的帖子左側。這裏有更多的信息:[**如何接受一個答案工作?**](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –

回答

0

我做了一些更多的研究,這裏是如何做到這一點。現在顯然它需要有一些非常相似的命名才值得。

For i = 0 To 39 
     My.Settings("F1LabelCol" & i.ToString & "Save") = Me.Controls("F1LabelCol" & i.ToString).Text 
Next 
+0

我不能'不要立即開始工作是另一個盲目支持我的問題。 –

+0

'.Text'不應該是名稱的一部分。 –

+0

謝謝你的權利。 –

0

您可以通過動態My.Settings.Item()Me.Controls.Item()同時訪問設置和控制。

我提出了兩種選擇:

1)使用For loop固定數量範圍:

For x = 0 To 9 
    My.Settings("F1LabelCol" & x & "Save") = Me.Controls("F1LabelCol" & x).Text 
Next 
  • 潛在上升空間:不下嚥例外(見下面的例子)。

  • 缺點:添加新設置/控件時,必須更改上限(當前爲9)。

2)使用用於動態號碼範圍的While loop

Dim x As Integer = 0 
While True 
    Try 
     My.Settings("F1LabelCol" & x & "Save") = Me.Controls("F1LabelCol" & x).Text 
    Catch 
     Exit While 'If an exception is thrown we've most likely hit the setting/control limit. 
    End Try 
End While 
  • 潛在上升空間:動態號碼範圍,不需要增加新的設置/控制時,改變任何東西。

  • 缺點: Swallows異常,即您不會知道何時拋出異常是由於另一個原因,而不是設置/控制不存在。


如果要動態加載數據,以及剛剛扭轉了get/set操作:

Me.Controls("F1LabelCol" & x).Text = My.Settings("F1LabelCol" & x & "Save") 
相關問題