2016-11-09 69 views
-1

我的代碼是C#Windows窗體
我有一個數據文件:

大衛一和二/三
亞歷克斯一兩四,五/六
阿曼達兩個七/十
邁克爾七/九

C#字符串數組單選按鈕

,並試圖讓他們在陣列狀

string[] Names = File.ReadAllLines("C:\Students\Name.txt", Encoding.Default); 


,並讓他們在單選按鈕組

RadioButton[] n = new RadioButton[Names.Length]; 

for (int i = 0; i < Names.Length; i++) 
{ 
    n[i] = new RadioButton(); 
    n[i].Text = Names[i]; 
    n[i].Location = new Point(10, 10 + i * 20); 
    groupBox1.Controls.Add(n[i]); 
} 

,但它顯示了我的附加的圖像
我嘗試沒有Encoding.Default和Encoding.UTF8但同樣的問題。
我做錯了什麼?請看我的形象並幫助我。先謝謝你!

enter image description here

+0

這聽起來像你問的兩個問題這裏。你剛纔沒有問過昨天剛剛閱讀這個文件的人嗎?那個走了嗎?我從來沒有看到關於文件行結尾格式的答案:'lf'或'crlf'? – clarkitect

+0

@clarkitect謝謝你的快速回復。對不起,是的,這是幾乎相同的問題,我真的希望我的數組字符串在單選按鈕中。順便說一句lf或crlf的含義是什麼?你是什​​麼意思?對不起,我是一個新的短語..;) –

+0

'lf'是「換行」的縮寫,'cr'是「回車」的縮寫,這是一個非常過時的「硬迴歸」名稱。文件中用於終止文件的每個「行」的字符。我們並沒有真正看到你的例子中的實際文件,因爲它被粘貼爲純文本而不是代碼(或者指向pastebin或其他東西)。您看到的結果會使文件的內容出現問題。另一種可能性是單選按鈕的標籤以某種方式解釋那個'/'字符。 – clarkitect

回答

0

我猜你的文件在結尾處包含空行。您可以嘗試創建一個單選按鈕之前將其刪除:

for (int i = 0; i < Names.Length; i++) 
{ 
    var name = Names[i]; 
    if(name.Trim() == string.Empty) continue; 

    n[i] = new RadioButton(); 
    n[i].Text = Names[i]; 
    n[i].Location = new Point(10, 10 + i * 20); 
    groupBox1.Controls.Add(n[i]); 
} 

如果您的文本進行修剪,你可以試着加大控制寬度:

n[i].Width = 300; // Put a value which will show the entire text 
+0

謝謝你的迴應,是的,你是對的我的文件包含空行,現在它是固定的,但同樣的問題,我可以顯示每行的一部分,而不是孔線作爲一個字符串。我期望圖像1不像圖像2.請幫我... –

+0

嘗試增加控件的寬度 –

+1

Mariusz Jamro,非常感謝,現在它按預期工作。 –