C # - распространенный способ форматирования списков элементов управления на формах? - PullRequest
1 голос
/ 07 апреля 2010

В приложении C # Winform (3.5) существует множество форм, каждая из которых имеет разные элементы управления списком.В то время как каждый элемент управления списком использует разные наборы данных, базовое форматирование каждого остается неизменным.

Базовое форматирование принимает следующую форму:

  /* appearance */
  this.lstA.View = View.Details;
  this.lstA.AllowColumnReorder = true;
  this.lstA.CheckBoxes = false;
  this.lstA.FullRowSelect = true;
  this.lstA.GridLines = false;
  this.lstA.Sorting = SortOrder.Ascending;

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

Как передать представление списка (по ссылке?) В класс, чтобы можно было установить свойства внешнего вида?

Ответы [ 4 ]

4 голосов
/ 07 апреля 2010

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

3 голосов
/ 07 апреля 2010

Чтобы добавить к другим ответам:

public static class MyExtensionMethods
    {
        public static void InitializeAppearance(this ListView aListView)
        {
            aListView.View = View.Details;
            aListView.AllowColumnReorder = true;
            aListView.CheckBoxes = false;
            aListView.FullRowSelect = true;
            aListView.GridLines = false;
            aListView.Sorting = SortOrder.Ascending;
        }
    }
}

и вы называете это listview1.InitializeAppearance();

2 голосов
/ 07 апреля 2010

Я думаю, у вас есть несколько вариантов, не знаю, какой из них лучше для вас, но вы можете рассмотреть:

  1. создание класса, который наследуется от ListView, и в конструкторе задайте все, что вам нужно. используйте этот класс в ваших формах. это хорошо, если вам нужен один и тот же внешний вид, несмотря ни на что.
  2. создать класс со статическим методом SetListViewAppearance (ListView controlToSet). в этом методе вы можете установить все, что вам нужно. это потребует от вас в каждой форме вызывать этот метод раньше, возможно, в событии загрузки формы.

Я бы выбрал первое решение, если у вас нет ограничений.

2 голосов
/ 07 апреля 2010

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

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