gpt4 book ai didi

c# - 如何将数据库中的数据随机添加到按钮的文本属性

转载 作者:太空宇宙 更新时间:2023-11-03 13:30:18 25 4
gpt4 key购买 nike

我正在做一个测验项目。我正在使用 4 个带有 CSS 样式的 asp 按钮,我将这 4 个按钮用作答案,在按钮的文本字段中给出正确或错误的答案。我已经阅读并发现了另一篇关于与此非常相似的帖子,但答案是使用字典列表。我有点确定我不需要使用列表,我应该能够随机分配文本属性。这是我用来将答案添加到按钮文本属性的代码,但我需要随机化答案的位置,因为始终在同一个按钮中提供正确答案是不对的。

lblQuestion.Text = ds.Tables[0].Rows[myNum]["Question"].ToString();
btn1.Text = ds.Tables[0].Rows[myNum]["CorrectAnswer"].ToString();
btn2.Text = ds.Tables[0].Rows[myNum]["WrongAnswer1"].ToString();
btn3.Text = ds.Tables[0].Rows[myNum]["WrongAnswer2"].ToString();
btn4.Text = ds.Tables[0].Rows[myNum]["WrongAnswer3"].ToString();

每个按钮都有一个 onlick 方法来切换到下一个问题并将按钮文本更改为下一个答案。此代码在每个按钮单击事件中...

protected void btn1_Click(object sender, EventArgs e)
{
lblQuestion.Text = ds.Tables[0].Rows[myNum]["Question"].ToString();
btn1.Text = ds.Tables[0].Rows[myNum]["CorrectAnswer"].ToString();
btn2.Text = ds.Tables[0].Rows[myNum]["WrongAnswer1"].ToString();
btn3.Text = ds.Tables[0].Rows[myNum]["WrongAnswer2"].ToString();
btn4.Text = ds.Tables[0].Rows[myNum]["WrongAnswer3"].ToString();

myNum = myNum + 1;
}

我不确定,但也许我需要能够使用一种方法来随机化所有按钮文本,而不是编码到每个按钮点击事件中?

谢谢

最佳答案

我写了一个简单的子例程来演示如何随机排列字符串,然后将它们附加到按钮上。此示例简单地演示了如何在屏幕上的 4 个可能位置中随机分配正确答案的位置。

    static void Main()
{

// create array of 4 string (or answers in your case)
//string[] array = new string[4] { "apple", "banana", "cranberry", "dragon fruit" };
string[] array = new string[4] {
ds.Tables[0].Rows[myNum]["CorrectAnswer"].ToString(),
ds.Tables[0].Rows[myNum]["WrongAnswer1"].ToString(),
ds.Tables[0].Rows[myNum]["WrongAnswer2"].ToString(),
ds.Tables[0].Rows[myNum]["WrongAnswer3"].ToString(),
};

// randomize the ordering of the items
System.Random rnd = new System.Random();
array = array.OrderBy(x => rnd.Next()).ToArray();

// each time you run this, the correct answer will be in a different place:
btn1.Text = array[0];
btn2.Text = array[1];
btn3.Text = array[2];
btn4.Text = array[3];

}

额外的答案,您还可以像这样将多个按钮连接到单个 Event Handler。一旦进入处理程序,您就可以访问引发事件的 Button 并执行操作:

protected void Page_Load(object sender, EventArgs e)
{
// attach event handlers
Button1.Click += ButtonClick;
Button2.Click += ButtonClick;
Button3.Click += ButtonClick;
Button4.Click += ButtonClick;
}

private void ButtonClick(object sender, EventArgs e)
{
// your code here...

// this is the button that raised the event
Button button = (Button)sender;
// check its ID? you could also check its text, perform any actions you wish, etc.
if (button.ID == "Button1")
{
System.Diagnostics.Debug.Print("Button 1 Clicked!");
}
}

关于c# - 如何将数据库中的数据随机添加到按钮的文本属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20850974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com