2016-11-09 92 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,非常感谢,现在它按预期工作。 –