2017-09-14 103 views
-1

我正在編寫一個程序,用於從CSV文件讀取問題以供用戶回答。一旦我從問題CSV文件中讀取,我將我的問題存儲在問題對象列表中。然後,我的GUI向用戶顯示每個問題從CSV文件讀取後在多行顯示標籤文本

Public Sub displayQuestion(ByVal x As Integer) 
    QuizForm.questionLabel.Text = allQuestions(x).qText 
End Sub 

並且他們能夠通過下一個/上一個按鈕循環訪問它們。每個Question對象都有一個表示問題文本的關聯字符串變量。

有些問題很簡單的句子,如

「以下哪項陳述的是一個測試團隊的MOST有效的目標是什麼?」

但是,有些問題是採用以下格式:

以下哪項是正確的?

答:軟件測試可能需要滿足法律或合同 的要求。

B.軟件測試主要是爲了提高 開發人員的工作質量。

C.嚴格測試和修復發現的缺陷有助於降低運行環境中出現問題的風險。

D.嚴格測試有時用於證明發現所有失敗已發現 。

麻煩的是,當從CSV文件中讀取問題文本時,它必須位於一行上。這就導致了結構類似的第二個例子顯示在我的GUI這樣的問題:

enter image description here

這是不是很人性化。

編號喜歡它呈現這樣的:

enter image description here

我明白,我怎麼會被硬編碼vbnewLine到文本做到這一點,但這些問題都在運行時動態加載。

任何關於我如何去做這件事的建議?

+0

問題的標籤可以是多行。答案選項可能/應該是複選框,也可以是多行。控件也可以錨定或用於佈局面板, – Plutonix

+0

我相信你的問題是你不知道如何構造CSV(逗號分隔變量)文件並解析其內容以供顯示。它是否正確?仔細想想,如果每一行如果文件有多個字段,那麼您應該能夠根據每行解析的信息做出決定,以決定如何顯示它。此外,請考慮使用[TextFieldParser類](https://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser(v = vs.110).aspx)來讀取文件並提取字段來自文件中的每一行。 – TnTinMn

回答

0

只需在子程序的末尾添加vbNewLine:

公用Sub displayQuestion(BYVAL X爲整數) QuizForm.questionLabel.Text = allQuestions(x)的.qText & vbNewLine() 結束小組

不要讓自己更難,那麼需要。在問題字符串的末尾添加一個新行,這沒有任何問題。

+0

這隻會在問題的文本後添加一行。包含問題文本的字符串包含整個問題文本。我正在尋找一種方式,當程序遇到一個問題,其結構像「以下哪項是真的?」。上面的例子中,程序能夠在'A:','B:','C'和'D'之前添加vbNewLine() – BIGJOHN