2013-03-17 31 views
2

Web控件錯誤: 「已經被聲明爲保護WITHEVENTS」

<asp:TextBox id="txtUsername" runat="server" CssClass="input-block-level" placeholder="Username" type="text" required></asp:TextBox> 
<asp:TextBox id="txtPassword" runat="server" CssClass="input-block-level" placeholder="Password" type="password" required></asp:TextBox> 

代碼隱藏

Inherits System.Web.UI.MasterPage 
Protected WithEvents txtUsername As System.Web.UI.WebControls.Literal 
Protected WithEvents txtPassword As System.Web.UI.WebControls.Literal 

錯誤:

Parse Error: 'txtPassword' is already declared as 'Protected WithEvents txtPassword As System.Web.UI.Webcontrols.TextBox in' this class
'txtUsername' is already declared as 'Protected WithEvents txtUsername As System.Web.UI.Webcontrols.TextBox in' this class

可能是什麼錯誤的原因是什麼?

回答

0

將控件添加到aspx頁面時,您的控件將添加到與您的代碼隱藏文件相同名稱的部分類中。如果您再次添加到代碼文件,您將收到錯誤。

+0

但是,刪除這些給了我另一個錯誤「類型'TextBox'的'Control'txtUsername'必須放置在runat = server的表單標籤內。」我相信它是在runat = server的表單裏面的。 – 2013-03-17 18:13:50

1

我知道這是遲了3年,但我剛剛解決了這個問題,我會分享我的解決方案,以幫助任何人在這裏磕磕絆絆。

我得到這個錯誤,當我註釋掉一個控件,在項目的其他部分工作,然後取消註釋它。

只需在aspx和aspx.vb中更改控件的ID,錯誤就會消失。

<!-- changed from txt to text --> 
<asp:TextBox id="textUsername" runat="server" CssClass="input-block-level" placeholder="Username" type="text" required></asp:TextBox> 
<asp:TextBox id="textPassword" runat="server" CssClass="input-block-level" placeholder="Password" type="password" required></asp:TextBox> 
+1

這個答案可能會消除錯誤信息,但它可能不會真正解決底層問題。 – Theophilus 2016-03-31 21:01:27

0

您可能擁有兩個或多個具有相同類名稱的Web窗體。

Partial Class somepage 
    ... 
End Class 

somepage.aspx.vbanotherpage.aspx.vb

<%@ Page ... Inherits="somepage" %> 
... 

內容:

SomePage.aspx頁面anotherpage.aspx內容在上面的示例代碼中,更改Inherits屬性和類名稱anotherpage。* files到anotherpage解決了這個問題。如果你使用C#,代碼隱藏看起來有點不同,但它是一樣的想法。

相關問題