У меня есть сетка свойств с пользовательским редактором, использующим UITypeEditor
.Я хочу выровнять его всплывающее окно с ячейкой сетки свойств, подобно редактору цветов по умолчанию, когда свойство имеет значение Color
, но не могу найти информацию о местоположении и размере ячейки сетки.
MyМетод UITypeEditor.EditValue
получает объект PropertyDescriptorGridEntry
в качестве параметра context
, но он также не имеет координат, а его коллекция GridItems
пуста.
Идеи кто-нибудь?Существуют ли (бесплатные) альтернативы PropertyGrid, предлагающие эту информацию?
Вот мой текущий код:
class MyPropertyGridEditor : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle( System.ComponentModel.ITypeDescriptorContext context )
{
return UITypeEditorEditStyle.Modal;
}
// Displays the UI for value selection.
public override object EditValue(
System.ComponentModel.ITypeDescriptorContext context,
System.IServiceProvider provider,
object value )
{
var form = new MyEditorForm( true );
// ??? Where can I find Location and Size of the grid cell ???
if( form.ShowDialog() == DialogResult.OK )
{
value = form.Items;
}
return value;
}
}
![Example of how my own editor shall be aligned](https://i.stack.imgur.com/7vTZM.png)
выше приведен пример того, как я хочу, чтобы моя форма была выровнена, в примере показан редактор цвета по умолчанию.