#c# #datagridview #scroll
#c# #datagridview #прокрутите #прокрутка
Вопрос:
я использовал приведенный ниже код для отображения данных в многострочном виде внутри сетки, поскольку мои данные в ячейках достаточно длинные.
Grid.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
Grid.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
но из-за этих свойств gridview занимает слишком много времени для загрузки, потому что моя база данных слишком большая.
так что мне действительно понравилось,
private void Form4_Load(object sender, EventArgs e)
{
Grid.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
Grid.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells;
}
private void Grid1_Scroll(object sender, ScrollEventArgs e)
{
Grid1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedHeaders;
Grid1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells;
}
но когда я нажимаю кнопку page down с клавиатуры, это работает нормально, но при прокрутке с помощью мыши загрузка данных занимает немного больше времени, а полоса прокрутки gridview отображается ненормально.
пожалуйста, кто-нибудь, помогите мне.
Ответ №1:
С помощью параметра AutoSizeRowsMode
вы задаете поведение сетки. Вместо того, чтобы делать это дважды, в Grid1_Scroll
случае попробуйте выполнить действие настройки:
Grid1.AutoResizeRows(DataGridViewAutoSizeRowsMode.DisplayedCells);
Вы также можете рассмотреть следующий Load
метод:
private void Form4_Load(object sender, EventArgs e)
{
Grid1.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
Grid1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
Grid1.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells);
}
Для настройки строк требуется время только один раз, при загрузке.