Повторное использование элементов управления (т. Е. Текстовых полей) на нескольких вкладках - PullRequest
1 голос
/ 06 февраля 2012

У меня есть программа C # WinForm, которая по сути является прославленным парсером текста.Он берет шестнадцатеричную строку и преобразует ее в читаемую человеком информацию на основе спецификаций, которые были мне представлены.У меня есть tabcontrol с несколькими вкладками, которые используются для отображения информации.Некоторые из этих вкладок идентичны, но должны располагаться на разных вкладках на основе проанализированной строки текста, если строка имеет тип «A», она отображает информацию на вкладке «A», если она имеет тип «B»,это отображается на вкладке «B» и так далее.

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

Вопрос, который у меня возникает, заключается в том, есть ли способ повторно использовать одну страницу элементов управления на нескольких вкладках, чтобы они отображали различную информацию в зависимости от вкладки, поэтому, возможно, я смогу сократить свои 100 элементов управления и упроститьсама программа?

Ответы [ 2 ]

1 голос
/ 06 февраля 2012

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

Есть несколько способов решить эту проблему архитектурно.основная концепция - перестать думать о «закладках» как о физической концепции и начать думать об этом логически.Как логическая концепция, в вашей реализации вкладка - это набор элементов управления, некоторые из которых уникальны, а некоторые являются общими (или общими для нескольких вкладок).

В чисто динамической системе вы заполняете «элементы управления» и динамически рисуете в зависимости от того, на какую «вкладку» нажимает человек.Это означает, что вам не нужно использовать вкладку.Вместо этого вы рисуете «вкладку», основываясь на том, какая информация должна отображаться пользователю.

Другой вариант - оставить уникальные «элементы управления», уже размещенные на «вкладке», и оставить контейнеры, которые вы можете добавить внеуникальные элементы управления для.Требуется некоторое планирование, чтобы определить, какие элементы управления должны отображаться на какой странице и как переплетаются статические (элементы управления, размещенные на вкладке) и динамические.Другими словами, немного планирования может спасти вас от горя.

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

Добавлено: так как это winforms, вам придется немного изменить свою мысленную парадигму.Если бы вы были разработчиком веб-форм, вы бы уже подумали с точки зрения контейнеров.

Один из вариантов - это шаблон стратегии для вкладок.стратегия содержит элементы управления, необходимые для рисования «вкладки», а также их расположение и размер на странице.Когда человек нажимает на вкладку, вы попадаете в «корзину элементов управления» и динамически добавляете в зависимости от используемой «вкладки» (стратегии).Вы даже можете перейти на закладку к стратегии и динамически раскрасить ее там.

главное во всем ответе - выполнить работу один раз, а затем отобразить при необходимости.

0 голосов
/ 06 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...