Реклама:

//---число столбцов в Datagrid

int nSkolkoStolbzov = 0;

//---если для раздела источника задан стиль

//---в коллекции стилей DataGrid

if (dataGrid3.TableStyles.Contains(dataGrid3.DataMember)) {

//---перебираем стили всех столбцов и вычисляем число столбцов

foreach (DataGridColumnStyle dgcs in

dataGrid3.TableStyles[dataGrid3.DataMember].GridColumnStyles)

{

nSkolkoStolbzov ++;

}

}

else

{

//---получаем CurrencyManager, связывающий источник данных

//---и DataGrid

CurrencyManager cm =

(CurrencyManager)this.BindingContext[

dataGrid3.DataSource, dataGrid3.DataMember];

//---переходим к строке неявного просмотра,

//---ассоциированного с DataGrid

DataRowView dv = (DataRowView)cm.Current;

//---а от нее - к строке данных и таблице набора данных,

//---а в ней - к коллекции Columns

nSkolkoStolbzov = dv.Row.Table.Columns.Count;

}

labell.Text = "Столбцов : " + nSkolkoStolbzov.ToString();

4.2.1.3. Ячейки DataGrid

Ячейка DataGrid - это объект типа System.Windows.Forms.Da-taGridCell. Обращение к этому объекту в принципе ничего не дает, кроме номеров столбца и строки, на пересечении которых находится ячейки. Эти значения возвращаются соответственно свойствами ячейки

public int ColumnNumber {get; set;} public int RowNumber {get; set;}

Данные, т. е. значение, содержащееся в ячейке, возвращается и задается одним из следующих индексаторов объекта DataGrid:

public object this[ DataGridCell cell ] {get; set;}

public object this[ int rowlndex, int collndex ] {get; set;}

В первом случае индексом служит ссылка на ячейку, во втором - ее координаты (номер строки rowIndex и столбца colIndex).

Пример. Считать значения ячеек [0,0] и [1,1], а также задать новое значение ячейки [2,1].

short nKK = (short)dataGrid1[0,0]; string sNazv = dataGrid1[1,1].ToString(); dataGrid1[2,1] = "ХИМИИ";

Текущая ячейка в сетке DataGrid обычно выделяется инверсным цветом (рис. 4.30).

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 4.30

Свойство CurrentCell элемента управления DataGrid возвращает ссылку на текущую ячейку:

public DataGridCell CurrentCell {get; set;}

Свойство CurrentRowIndex элемента управления DataGrid возвращает номер строки, в которой находится текущая ячейка:

public int CurrentRowIndex {get; set;}

Смена текущей ячейки в DataGrid сопровождается наступлением события

public event EventHandler CurrentCellChanged;

Пример. Выдавать в элемент управления label1 содержимое текущей ячейки DataGrid:

private void dataGrid1_CurrentCellChanged(object sender, System.EventArgs e)

{

label1.Text = dataGrid1[dataGrid1.CurrentCell].ToString();

}

Если верхняя или нижняя строка DataGrid уходит за пределы видимости в сетке данных, имеет место так называемая "прокрутка" данных. Она сопровождается наступлением события

public event EventHandler Scroll;

4.2.2. Связывание DataGrid с источником данных

Элемент управления DataGrid можно связывать со следующими источниками данных:

• набором данных (объект DataSet);

• таблицей набора данных (объект DataTable);

• просмотром (объект DataView);

• менеджером просмотров (объект DataViewManager).

Когда в качестве источника данных (свойство DataSource элемента управления DataGrid) указывается таблица или просмотр, то раздел данных (т. е. значение свойства DataMember) не указывается.


⇐ Предыдущая страница| |Следующая страница ⇒