2013-11-20 4 views
1

Я должен создать сетку свойств «поиска», то есть текстовое поле, расположенное сверху, а затем сетью свойств. Вместо того, чтобы использовать пользовательский элемент управления, я бы расширил сетку свойств напрямую, но я не могу добавить элемент управления текстовым полем «на лету». Кто-нибудь может мне помочь? Большое вам спасибо!C#: как расширить свойствоgrid, чтобы показать текстовое поле наверх

+0

Почему бы не добавить его в начале и просто изменить видимость –

+0

, пожалуйста, не могли бы вы привести мне пример? –

+0

изначально установил 'myTextBox.Visible = false;' затем, когда вы хотите, чтобы он показывался, просто скажите 'myTextBox.Visible = true;' –

ответ

1

Поток создания внутреннего контроля PropertyGrid недокументирован. Он состоит из ToolStrip, внутренней сетки, панели описания и панели действий.

Я попытался добавить элемент управления в существующую коллекцию: он вызывает проблемы во всем макете управления, который, как представляется, выполняется с помощью внутренних пользовательских вычислений, а не с существующим хорошо известным механизмом компоновки NET.

Возможно, это может быть применено с использованием Reflection, но я даже не пробовал его, потому что это было бы трудно с одной стороны, а с другой стороны, это поставило бы под угрозу восходящую совместимость будущих выпусков PropertyGrid.

я в конечном итоге с помощью UserControl, где я положил сверху стыковка TextBox, с заполнением док PropertyGrid, и добавил это свойство:

public PropertyGrid InnerPropertyGrid 
{ 
    get 
    { 
     return this.propertyGrid1; 
    } 
} 

По этому пути, все мои PropertyGrid свойств, методов и событий выставлены, даже в режиме разработки.

Это не самый умный способ сделать это, но это быстрее и легче, чем пытаться взломать некоторые частные части этого элемента управления.

+0

Здравствуйте! это мое фактическое решение. моя надежда состояла в том, чтобы удалить контрольную вложенность, но теперь я думаю, что это слишком дорого! –

+0

Я даже попытался добавить элемент во внутреннюю ToolStrip ... Он принимает кнопку и метку, но не понимает TextBoxToolStripItem ... Это кошмар :) Итак, я придерживаюсь этого, и я в целом счастлив. – Larry