2013-02-25 29 views
0

所以,我的XML文件如下:獲取按鈕的數組以顯示XML文件中的數據?

<?xml version="1.0" encoding="utf-8" ?> 
<quiz> 

</answers> 
</question> 

<!-- More questions here --> 

</quiz> 

我Form1.cs的是這樣的:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Windows.Forms; 
using System.Xml.Linq; 
using System.Drawing; 

namespace WindowsFormsApplication1 
{ 
    public partial class FormMain : Form 
    { 

基本上,所有四個按鈕有問題的方式,而不是問題的答案,下面的左下角的按鈕,似乎有一個空白的按鈕。我如何得到問題來顯示label1的位置以及答案是在四個單獨的按鈕上?另外,當我開始添加多個問題時,我該怎麼做(用戶顯然不能移動到下一個問題,除非他們獲得前一個權限,並且可以在開始時選擇難度來顯示不同的問題)。

我一直在這一段時間,我認爲它需要一個新的眼睛,因爲我相對新手C#腦無法想通它。任何人都可以幫我嗎?

回答

0

你在你的每一次循環中設置每個按鈕的文字:

foreach (var question in _questions) 
{ 
    button1.Text = question.QuestionText; 
    button2.Text = question.QuestionText; 
    button3.Text = question.QuestionText; 
    button4.Text = question.QuestionText; 
} 

周圍循環中的最後一次,每個按鈕會將文本設置爲最後一個問題的文本。

它看起來有點奇怪,因爲您有四個按鈕定義爲窗體的字段,但您在PopulateForm方法中創建了另外的按鈕,但是對它們無所作爲。

你會過得更好擺脫領域,並與新創建的按鈕來直接工作:

private void PopulateForm() 
{ 
    int count = 0; 

    foreach (var question in _questions) 
    { 
     var button = new Button(); 
     button.Size = new Size(60, 23); 
     button.Location = new Point(100, 40 + (count * 30)); 
     button.Text = question.QuestionText; 
     Controls.Add(button); 
     count++; 
    } 
} 

你必須設置每個按鈕的東西不同的位置,否則,他們將全部展現在同一個地方。


編輯:

從看着你的zip文件的代碼,你想要什麼是一樣的東西(假設你的問題有四個答案):

private void PopulateForm() 
{ 
    foreach (var question in _questions) 
    { 
     label1.Text = question.QuestionText; 

     button1.Text = question.Answers[0]; 
     button2.Text = question.Answers[1]; 
     button3.Text = question.Answers[2]; 
     button4.Text = question.Answers[3]; 
    } 
} 
+0

所以去掉Button [] myBut = new Button [3]; for(int i = 0; i <3; i ++)的東西,並用上面的代替它?如何設置每個單獨按鈕的位置? – user2084095 2013-02-25 23:39:59

+0

@ user2084095:是的。要設置每個按鈕的位置,您可以將每次設置的金額添加到其位置。 – adrianbanks 2013-02-25 23:41:32

+0

我試過這樣做,但每個按鈕都只是空白。我從來沒有做過這樣的事情;我該如何添加一個設定的數量到它的位置?它是這樣做的:http://i.imgur.com/V8Ejqst.png - 我希望label1顯示來自XML文件的問題和四個空白按鈕以獲得四個可能的答案,而沒有帶文本的惱人重疊按鈕在裏面。 – user2084095 2013-02-25 23:44:03

相關問題