正在更改对象发送方控件的CSS类

本文关键字:控件 CSS 方控件 对象 | 更新日期: 2023-09-27 18:25:58

我正在C#.net中制作一个工作簿创建者(使用visual studio)

本书由正文部分和问题部分组成。

问题的所有答案都在文本中,用户需要点击正确的答案。如果他是对的,那么这个词就会变成绿色,如果他错了,就会变成红色。

我正在用LINKBUTTON创建可点击的文本,我给了链接按钮CsStyle类,在用户点击单词后,我想将该链接的类更改为其他类。

这是我用来创建链接按钮的代码:

  public void createQusetion(Panel lefttext, Panel question, string text, string          
   questionText, string answer)
{
    string[] Qbuttonstext = text.Split(' ');
    _numberWords = Qbuttonstext.Length;
    for (int i = 0; i < _numberWords; i++)
    {
        LinkButton answerButton = new LinkButton();
        if (Qbuttonstext[i] == answer)
        {
            answerButton.ID = "answerswer" + i;
        }
        else
        {
            answerButton.ID = "word" + i.ToString();
        }
        answerButton.Text = Qbuttonstext[i].ToString() + " ";
        answerButton.CssClass = "textbuttonB4";
        answerButton.Click += new EventHandler(checkAnswer);
        lefttext.Controls.Add(answerButton);
    }

}

对于检查问题:

 private void checkAnswer(object sender, System.EventArgs e)
{
    for (int i = 0; i < _numberWords; i++)
    {
        if (((Control)sender).ID.ToString() != null)
        {
            if (((Control)sender).ID.ToString() == "answerswer" + i.ToString())
            {
                ((Control)sender).CssClass = "textbuttonRight";
            }
            else
            {
                ((Control)sender).CssClass = "textbuttonwrong";
            }
        }
    }
}

VS2010给了我错误的:((Control)sender).CssClass。

什么是正确的方法?

正在更改对象发送方控件的CSS类

您可以通过这种方式进行与类型无关的控制。它将为所有具有Id和CssClass属性的控件运行。

    private void checkAnswer(object sender, System.EventArgs e)
    {
        var cssClass = sender.GetType().GetProperty("CssClass");
        var id = sender.GetType().GetProperty("ID").GetValue(sender, null);
        for (int i = 0; i < _numberWords; i++)
        {
            if (id!=null)
            {
                if (id.ToString() == "answerswer" + i.ToString())
                {
                    cssClass.SetValue(sender, "textbuttonRight", null);
                }
                else
                {
                    cssClass.SetValue(sender, "textbuttonRight", null);
                }
            }
        }
    }