none
請教一下關於PropertyGrid的問題 RRS feed

  • 問題

  • 在VS2005或是2003中,WebControl的ID都是必須要指定名稱
    不然在設計階段的PropertyGrid中,他會跳出錯誤訊息並
    且將值改變為原來的值.

    我現在要自己設計類別,並把他放到PropertyGrid中編輯
    像這樣一定要指定值的屬性,該如何處理?
    2006年5月9日 下午 05:23

解答

所有回覆

  • 這個牽涉到實作細節

    您可以考慮到codeproject網站找現成的範例.

    如:

    http://www.codeproject.com/aspnet/HidingProperties.asp

    2006年5月15日 上午 09:03
  • 很感謝您的回應(終於有人回應了!真是感動.)
    根據您所提供的網址,它的功能主要在於RunTime階段進行
    類別屬性中繼資料的變更,我個人猜測VS2003或是VS2005
    的那種方式是不是在這個階段將原來的ID屬性隱藏起來,然後
    重新建立一個ID Property然後進行這樣的處理呢?至於要怎樣
    作我還是沒有什麼頭緒,希望你可以在提示一下!

    2006年5月15日 下午 11:33
  • 又去看了一下MS的做法
    我發現MS在DesignerHost這個類別中作了一段像這樣的語法
    if (value.Length > 0)
    {
       IComponent component1 = this._container.Components[value];
       flag1 = this._component != component1;
       if ((component1 != null) && flag1)
       {
           Exception exception1 = new Exception(System.Design.SR.GetString("DesignerHostDuplicateName", new object[] { value }));
           exception1.HelpLink = "DesignerHostDuplicateName";
           throw exception1;
       }
    }

    這一段的程式碼是在處理重複的控制項名稱,這樣是不是說如果要
    作ID不可以是空白的話,只要發現輸入為空字串時,丟出一個Exception
    呢?

    例如:
    if ((value != null) && (value.Length == 0))
    {
     Exception exception1 = new Exception("'' 不是元件的有效名稱.");
     throw exception1;
    }

    不知道這樣的做法是不是洽當?

    2006年5月16日 上午 12:09