簡體   English   中英

C#:如何在具有附加事件處理程序的屬性上執行方法(沒有堆棧溢出)

[英]C#: How do I execute a method on a property that has an attached event handler (without a stack overflow)

設置:我已經在WebBrowser控件上附加了一個事件處理程序,如下所示:

ChatInputElement.AttachEventHandler("onpropertychange", OnInputChange);

那部分效果很好...但是我正在混亂的網站有時會將URLEncoded信息輸入到Input區域,這缺乏良好的人類可讀體驗。

因此,我試圖利用“ onpropertychange”事件來觸發一種方法,該方法將對輸入框中的數據進行URLDecode。 不幸的是,由於在解碼URL時觸發了“ onpropertychange”事件,因此會導致堆棧溢出...

問題:如何在不引起堆棧溢出的情況下完成URLDecoding輸入框中的數據? 有沒有一種方法可以檢測到URLEncoded的材料,因為輸入框確實包含有時不需要解碼的數據。

您可以在處理程序中設置一個類級別的標志,如果設置了該標志,則退出處理程序。

將結果存儲起來以便在后續的處理程序調用中進行比較:

防止循環的一種方法是在設置屬性之前將解碼的URL存儲在字段變量中。 然后,設置屬性。 在第二次調用事件處理程序時,將存儲的字段與屬性的當前值進行比較。 如果相同,則說明您已經對其進行了URL解碼,並且可以退出事件處理程序而無需修改屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM