2011-07-27 42 views
1

我需要在屬性窗口中顯示這些srings'm_nullPolicy'和'm_nullVersion',我的意思是在屬性網格中。截至目前它正在UI中顯示 。當我做了搜索,我可以看到BrowsableAttribute類將做到這一點,但我不知道如何在這裏實現它,任何人都可以在這裏指導我如何使用BrowsableAttribute類在propertygrid中顯示

這是代碼顯示值UI

if (Data.ResourcePolicy == null) 
          { 
           if (Data.AgentVersion == null) 
           { 
            SubItems.Add(ResourcePolicyAvailSystemsLVI.m_nullString); 
           } 
           else 
           { 
            SubItems.Add(m_nullPolicy); 
           } 
          } 
          else 
          { 
           SubItems.Add(Data.ResourcePolicy.Name); 
          } 
          if (Data.AgentVersion == null || Data.AgentVersion.Equals("0.0.0.0")) 
          { 
           SubItems.Add(ResourcePolicySystemsControl.m_nullVersion); 
          } 
          else 
          { 
           SubItems.Add(Data.AgentVersion); 
          } 

回答

0

當用手動處理PropertyGrid時,BrowsableAttribute不適用。

通過手動我的意思是,當物業網格上逐項插入項目時。

但是,您可以使用自動化的方式...即使用包含BrowsableAttribute屬性的對象並將該對象分配給SelectedObject屬性。

嘗試以下操作:

創建一個類,有一些特性,例如:

class MyClass 
    { 
     public string Name { get; set; } 

     [BrowsableAttribute(false)] 
     public string InvisibleProperty { get; set; } 
    } 

上有一個屬性網格創建一個表單。

現在,實例化類並指定爲SelectedObject財產,也許在窗體加載事件:

private void Form1_Load(object sender, EventArgs e) 
    { 
     propertyGrid1.SelectedObject = new MyClass(); 
    } 

在這個例子中,屬性網格將顯示Name財產,但不InvisibleProperty

+0

屬性網格有一個名爲'SelectedObject'的屬性,您可以使用它來分配要編輯的整個對象。 –

+0

讓我試試我的身邊,如果不行,我會迴應 – ricky

相關問題