Только для 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 !"); }
У меня работает этот трюк:
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;
}
Здесь происходит то, что вы устанавливаете автоматическое изменение размера в любой нужный вам режим, а затем столбец за столбцом сохраняете ширину, полученную при вычислении автоматического размера, удаляете автоматическое изменение размера и установите для ширины значение, которое вы сохранили ранее.
В моем приложении я установил
grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
grid.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
Кроме того, я установил
grid.AllowUserToOrderColumns = true;
grid.AllowUserToResizeColumns = true;
. Теперь ширину столбцов можно изменять, и пользователь может переставлять столбцы. У меня это работает очень хорошо.
Может быть, это сработает для вас.
Может быть, вы могли бы позвонить
dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.Fill);
после установки источника данных. Он установит ширину и разрешит изменение размера.
Больше о MSDN DataGridView.AutoResizeColumns Method (DataGridViewAutoSizeColumnsMode).