質問のランダム化されたテストを画像で表示するC#プログラムを書いています。
テストには10の質問があります。また、ImageListに10枚の画像を追加しました。私の質問はランダムに選択され、解決するクイズごとに表示されます。それぞれの質問とその写真をお伝えしたいと思います。
ファイルからロードする質問のコレクションがあります。
Collection<question> questions = new Collection<question>();
StreamReader sr = new StreamReader("quiz.txt");
while (!sr.EndOfStream)
{
question i = new question();
i.text = sr.ReadLine();
questions.Add(i);
}
sr.Close();
Random r = new Random();
int x = r.Next(questions.Count);
ImageList
ツールボックスからコントロールを追加しました。次に、画像コレクションエディタを使用して画像を追加しました。私が使用したコードの場合:
pictureBox1.Image = imageList1.Images[a];
これは次の場合に停止しますa > imageList1.Images.Count
current_questionとImageListからのその画像をどのように相関させることができますか?
アップデート
public class question
{
public bool displayed = false;
public string text, answer1, answer2;
}
private void button1_Click_1(object sender, EventArgs e)
{
string line = questions[current_question].text;
int delimiter = line.IndexOf(':');
int imageIndex = int.Parse(line.Substring(0, delimiter));
string questionText=line.Substring(delimiter + 1);
pictureBox1.Image = imageList1.Images[imageIndex];//I still have problems with
//images
if (nr > questions.Count)
{
button1.Enabled = false;
}
else
{
Random r = new Random();
int x;
do { x = r.Next(questions.Count); }
while (questions[x].displayed == true);
textBox1.Text = questionText;// now it doesn't appear the index;thank you
radioButton1.Text = questions[x].answer1; // is not from the current
// question
radioButton2.Text = questions[x].answer2;// is not from the current
// question
questions[x].displayed= true;
current_question = x;
}
}