Я создаю Winform DataGridView программно.Мне нужно создать несколько разных списков, поэтому я добавляю каждый столбец динамически.Проблема, с которой я сталкиваюсь, состоит в том, когда сумма ширины всех столбцов больше, чем ширина DataGridView.Горизонтальная полоса прокрутки показывает правильно, работает правильно, когда я перемещаю ее, но, когда я нажимаю TAB, чтобы перейти к ячейке, которая находится за пределами видимого диапазона DGV, не прокручивается автоматически.Ниже показано, как я устанавливаю DGV, будучи «этим» самим DataGridView.
public DataGridViewCellStyle GridStyle()
{
// Set the column header style.
DataGridViewCellStyle columnHeaderStyle = new DataGridViewCellStyle();
columnHeaderStyle.ForeColor = DataFormatting.RegularForeColor;
columnHeaderStyle.BackColor = DataFormatting.RegularBackColor;
columnHeaderStyle.Font = DataFormatting.FontBold;
return columnHeaderStyle;
}
public DataGridViewCellStyle GridStyleAlternate()
{
DataGridViewCellStyle oAlternas = new DataGridViewCellStyle();
oAlternas.BackColor = DataFormatting.AlternateBackColor;
oAlternas.Font = DataFormatting.Font;
return oAlternas;
}
public void GridFormat()
{
//Estilo de los cabezales de las columnas
this.ColumnHeadersDefaultCellStyle = GridStyle();
this.AlternatingRowsDefaultCellStyle = GridStyleAlternate();
// Formato del grid
this.AllowUserToAddRows = true;
this.AllowUserToDeleteRows = true;
this.AllowUserToOrderColumns = true;
this.AllowUserToResizeColumns = true;
this.AllowUserToResizeRows = false;
//this.BackgroundColor = SystemColors.ActiveBorder;
this.Font = DataFormatting.Font;
this.MultiSelect = false;
this.ScrollBars = ScrollBars.Both;
this.ShowCellErrors = false;
this.ShowEditingIcon = false;
this.ShowRowErrors = false;
//Set the edit mode to "on enter" so that when a cell gains focus it automatically enters editing mode
this.AutoGenerateColumns = false;
this.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells | DataGridViewAutoSizeRowsMode.DisplayedHeaders;
this.EditMode = DataGridViewEditMode.EditOnEnter;
this.RowHeadersVisible = true;
this.SelectionMode = DataGridViewSelectionMode.RowHeaderSelect | DataGridViewSelectionMode.CellSelect;
Любая помощь приветствуется.