2012-02-28 22 views
0

我正在做在C#.NET中的一個工作簿創建者(使用Visual Studio的)改變CSS類爲對象發件人控制

本書是從文字部分和問題部分建設。

該問題的所有答案都在文本中,用戶需要點擊正確的答案。如果他是對的,那麼這個詞變得綠色,如果他錯了,它會變成紅色。

我用LINKBUTTON創建clickeable文本,我給鏈接按鈕CssStyle類和用戶點擊單詞後,我想改變這個鏈接到不同的類的類。

這是我使用用於創建linksbutton的代碼:

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 = "answer" + 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() == "answer" + i.ToString()) 
      { 
       ((Control)sender).CssClass = "textbuttonRight"; 

      } 
      else 
      { 
       ((Control)sender).CssClass = "textbuttonwrong"; 

      } 
     } 
    } 
} 

的VS2010給我misatake爲:((對照)發送器) .CssClass。

什麼是正確的方法?

+0

爲什麼不把它作爲'LinkBut​​ton'? – Shai 2012-02-28 11:24:13

+0

CSSClass是WebControl的一個屬性,因此轉換爲 - http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webcontrol.cssclass.aspx – stuartd 2012-02-28 11:25:27

回答

1

您可以通過這種方式進行類型無關的控制。它將爲所有具有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() == "answer" + i.ToString()) 
       { 
        cssClass.SetValue(sender, "textbuttonRight", null); 
       } 
       else 
       { 
        cssClass.SetValue(sender, "textbuttonRight", null); 
       } 
      } 
     } 
    } 
+0

謝謝你,這是非常有用的 – 2012-02-28 14:56:53