2012-03-20 51 views
6

我有一个System.Windows.Forms.PropertyGrid与不同类型的值。对于特定项目,我想显示有用值的列表以供选择。用户也可以输入新的值。一些类似于传统的下拉组合框:如何将可编辑的组合框添加到System.Windows.Forms.PropertyGrid?

enter image description here

到目前为止,我有我自己的System.ComponentModel.TypeConverter,但我无法弄清楚如何与建议值编辑的可能性同时获得下拉直接值。请帮忙!

回答

4

很简单。在你自己的StringConverter返回falseGetStandardValuesExclusive就是这样。

看看这里:

internal class cmbKutoviNagiba : StringConverter 
{ 
     public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) 
     { 
      return FALSE; // <----- just highlight! remember to write it lowecase 
     } 

     public override TypeConverter.StandardValuesCollection GetStandardValues(
      ITypeDescriptorContext context) 
     { 
      string[] a = { "0", "15", "30", "45", "60", "75", "90" }; 
      return new StandardValuesCollection(a); 
     } 

     public override bool GetStandardValuesSupported(ITypeDescriptorContext context) 
     { 
      return true; 
     } 
    } 

我用大写字母写道FALSE,只是为了让你easyer看到它。请用小写字母:)

+1

顺便说一下:'GetStandardValuesExclusive'的覆盖似乎只有在从'StringConverter'派生的类中使用时才会被调用。当你从'TypeConverter'派生你的类时,它似乎不会被调用。 – 2014-12-19 10:45:44