2010-04-09 49 views
0

在我的應用程序中,我有方法返回一個控件(複選框,單選按鈕,文本框),但我想爲我的webform和winform使用相同的類。我怎樣才能做到這一點?我在想一個接口,但我不知道如何實現這個。如何製作符合winform和webform的控件?

在我的代碼有以下幾種方法:

public TextBox GenerateTextfield(AnswerPossibility answerPossibility) 
{ 
    TextBox textBox = new TextBox(); 
    textBox.Tag = answerPossibility.Tag; 

    return textBox; 
} 

public Collection<ButtonBase> GenerateMultipleChoice(Collection<AnswerPossibility> answers) 
{ 
    Collection<ButtonBase> checks = new Collection<ButtonBase>(); 

    foreach (AnswerPossibility a in answers) 
    { 
     CheckBox chk = new CheckBox(); 
     chk.Text = a.Text; 
     chk.Name = "chk" + a.Id.ToString(); 
     chk.Tag = a.Tag; 

     checks.Add(chk); 
    } 

    return checks; 
} 

我怎樣才能讓這個的話,我可以在Web表單中一個雙贏的形式使用這個方法呢?

回答

1

Winforms和Webforms UI結構是完全不同的。 Web是一個斷開連接的體系結構,您可以從屏幕上回傳結果。使用Winforms,您可以完全控制您的應用程序中的每個按鍵。您可以在Web上實現相同的功能,但只能通過JavaScript在斷開連接的環境中實現。

雖然控制類的名字看起來是一樣的,他們是從命名空間中的不同部分。

如果你真的需要你的應用程序運行Web和地方上是相同的,你應該去Silverlight的。這可以在瀏覽器外部的&中運行,具有相同的代碼。儘管你可能會限制你的用戶羣。

+0

但是,沒有類似界面的解決方案,所以我可以調用像InameInterface.GenerateTextfield()?而且這個界面是通過win或webform實現的? – Martijn 2010-04-09 07:51:44

+0

你可以實現這樣的事情,但是你可能會遇到麻煩,處理來自用戶的輸入,因爲架構是如此不同。 – GvS 2010-04-09 07:58:10

+0

Okee,所以你建議創建兩個類,一個用於web-和一個用於winform? – Martijn 2010-04-09 08:01:53