2014-01-26 31 views
0

我有一個Windows窗體程序,我想根據用戶指定的數字'運行'一定次數。使程序根據用戶輸入運行多次

我正在使用Visual Studio 2013和C#。

我有一個程序,有16個圖片框,並隨機分配圖片到這些框中的5個。該人必須選擇正確的圖片順序。如果他們這樣做,他們會得到回報,如果他們選擇錯了,他們會受到惱人的聲音懲罰。

我的第一種形式有一個TextBox,用戶可以指定'numberOfTrials' 我有第二種形式,它接受TextBox的值並將其轉換爲int。

我想讓我的第二個表單上的主程序運行用戶指定的次數。

如果我運行一次,而不使用這個變量,我的程序會工作。

我已經嘗試在啓動程序的方法內使用for循環,但是這不起作用。它只是使所有的圖片框變成白色。

然後,我嘗試在InitializeComponent()方法周圍使用for循環,但是,這又使得所有圖片框都變成了白色。

我對循環使用文本框變量作爲這樣的:

for (int cycles = 0; cycles < numberOfTimesThrough; cycles++) 

我通過解析文本變量創建numberOfTimesThrough變量。

也許我這樣做是錯誤的?

在第一種形式:

在類的頂部:

public static string trialNumberString; 

一個是當確認按鈕被按下稱爲方法內:

trialNumberString = tbTrialNumber.Text.ToString(); 

在第二形式:

位於班級頂端:

//Integer value for the string of trials 
public static int numberOfTimesThrough; 
bool canConvert = Int32.TryParse(Settings.trialNumberString, out numberOfTimesThrough); 

這是正確的方法來獲取第一個窗體上的文本框的字符串值? 我相信添加for循環應該使程序重複自己,所以肯定有問題的方式我解析文本框字符串爲int。 使用這個程序的人不想破壞它,所以輸入到第一個窗體上的文本框中的數據總是在1到25之間。我是否還需要圍繞字符串轉換嘗試使用try catch?

任何幫助,這將不勝感激。

回答

1
  • 你不需要重新運行整個程序只是爲了顯示一種形式多次:不是,只是實例化了第二種形式的多個實例,並顯示在序列。

  • 爲了安全地解析文本的數量,你可以使用int.TryParse()

+0

我喜歡你的想法顯示多個實例。我只是在第二個表單上多次寫入InitializeComponent(),或者從第一個表單多次調用第二個表單? – smokeAndMirrors

+1

@smokeAndMirrors我會從第一個表單創建第二個表單的多個實例 – ChaseMedallion

1

您可以通過訪問它的Text屬性來獲取文本框的值,並從那裏解析返回到int的字符串。

string s = textBox.Text; 
int i = int.Parse(s); 

使用任何驗證邏輯也是必要的。

+0

我也嘗試這種方法,但我收到一條錯誤消息,表示「無法字符串隱式轉換爲int」 :-( – smokeAndMirrors

+0

其實,我沒有嘗試使用textBox.text我只使用textBox.Text.toString()我會嘗試它沒有toString()標記 – smokeAndMirrors

相關問題