Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Autoresize коллонок в DataGridView 
:(
    Опции темы
Competitor
Дата 28.6.2007, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 23.3.2005
Где: Tula

Репутация: нет
Всего: -1



Привет всем. Подскажите плз, как сделать так, чтобы при изменении размеров формы, размеры колонок менялись соответственно. Я сделал так:
Код

            dataGridView1.Width = this.Width / 2;
            dataGridView1.Height = this.Height / 2;

Размеры самого dataGridView1 меняются, но размеры колонок нет.
Я пробовал менять размеры колонок так:
Код

            dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.Fill);

но вылетает исключение:
Код

Parameter autoSizeColumnMode is not valid for this operation. It cannot be NotSet, None or Fill but needs to indicate a sizing criteria.

Подскажите как решить эту проблему.
PM MAIL WWW   Вверх
tol05
Дата 30.6.2007, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 11
Всего: 170



после того, как я рефлектором прошелся по DataGridView и увидел, как захардкодан метод AutoResizeColumns, у меня не то "что волосы на голове зашевелились", у меня голова реально и сильно задергалась...  smile 
метод AutoResizeColumns(DataGridViewAutoSizeColumnsMode autoSizeColumnsMode)
 вызывает метод AutoResizeColumns(DataGridViewAutoSizeColumnsMode autoSizeColumnsMode, bool fixedHeight), а тот - для каждого столбца - метод AutoResizeColumn(int columnIndex, DataGridViewAutoSizeColumnMode autoSizeColumnMode, bool fixedHeight)
И вот здесь идет проверка переданного параметра autoSizeColumnMode и
Код

if (((autoSizeColumnMode == DataGridViewAutoSizeColumnMode.NotSet) || (autoSizeColumnMode == DataGridViewAutoSizeColumnMode.None)) || (autoSizeColumnMode == DataGridViewAutoSizeColumnMode.Fill))
    {
        throw new ArgumentException(SR.GetString("DataGridView_NeedColumnAutoSizingCriteria", new object[] { "autoSizeColumnMode" }));
    }

Причем в MSDN честно написано: будут такие значение - буду exceptions. А почему? Что за ... ? Нафиг тогда вообще enum такой придумывать и передавать его как параметр метода!!!, если он то валидный, то нет...

Цитата(Competitor @  28.6.2007,  14:43 Найти цитируемый пост)
 как решить эту проблему?

да очень просто. В качестве параметра пиши все, что хочешь, кроме "DataGridViewAutoSizeColumnMode.NotSet" "DataGridViewAutoSizeColumnMode.None" и "DataGridViewAutoSizeColumnMode.Fill"
например 
Код

dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);

а еще лучше - поставь для грида AutoSizeColumnMode=None и размеры столбцов вручную меняй.
Код

//Row Headers я убирал, чтоб было просто 2 столбца и все
private void Form1_SizeChanged(object sender, EventArgs e)
    {
      dataGridView1.Width = this.Width / 2;
      dataGridView1.Height = this.Height / 2;
      dataGridView1.Columns[0].Width = dataGridView1.Width / 2;
      dataGridView1.Columns[1].Width = dataGridView1.Width / 2;
      //dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
    }

Все равно в коде контрола все его свойства и методы друг на друга хоатично и по нескольку раз завязаны... Добъешься того же результата, только быстрее и без exceptions smile
Блин. Вот в таких случаях и вспоминаю : "Не нравится? Пишите свои библиотеки контролов"

Это сообщение отредактировал(а) tol05 - 30.6.2007, 22:45


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0417 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.