Как Вы автоматически изменяете размер столбцов в управлении DataGridView И позволяете пользователю изменять размер столбцов на той же самой сетке?

Только для debug / dev , я публикую это, если это кому-нибудь пригодится

Интересные вещи, в Firebug (и, вероятно, другие js-консоли), после нажатия Enter ничего не происходит, только после указанной продолжительности сна (...)

function sleepFor( sleepDuration ){
    var now = new Date().getTime();
    while(new Date().getTime() < now + sleepDuration){ /* do nothing */ } 
}

Пример использования:

function sleepThenAct(){ sleepFor(2000); console.log("hello js sleep !"); }
107
задан informatik01 28 August 2013 в 23:17
поделиться

3 ответа

У меня работает этот трюк:

grd.DataSource = DT;

//set autosize mode
grd.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
grd.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
grd.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

//datagrid has calculated it's widths so we can store them
for (int i = 0; i <= grd.Columns.Count - 1; i++) {
    //store autosized widths
    int colw = grd.Columns[i].Width;
    //remove autosizing
    grd.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
    //set width to calculated by autosize
    grd.Columns[i].Width = colw;
}

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

126
ответ дан 24 November 2019 в 03:38
поделиться

В моем приложении я установил

grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
grid.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;

Кроме того, я установил

grid.AllowUserToOrderColumns = true;
grid.AllowUserToResizeColumns = true;

. Теперь ширину столбцов можно изменять, и пользователь может переставлять столбцы. У меня это работает очень хорошо.

Может быть, это сработает для вас.

13
ответ дан 24 November 2019 в 03:38
поделиться

Может быть, вы могли бы позвонить

dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.Fill);

после установки источника данных. Он установит ширину и разрешит изменение размера.

Больше о MSDN DataGridView.AutoResizeColumns Method (DataGridViewAutoSizeColumnsMode).

44
ответ дан 24 November 2019 в 03:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: