2009-04-09 4 views
0

Я хочу добавить DataGrid в форму. Когда программа выполняется, пользователь вводит значения, и я использую эти значения в задаче. Мне нужна аналогичная реализация для таблицы с двумя столбцами, и когда пользователь вводит значения, которые я использую для вычисления в программе.Как создать DataGrid на C#?

Нет необходимости сохранять эти значения в базе данных, они просто будут использоваться в программе.

Как это сделать на C#?

+0

Можете ли вы дать больше объяснений на ваш вопрос. Вы используете приложение Windows для этого? – rahul

+0

да я приложение для Windows, я просто хочу добавить таблицу, но нет таблицы в C#, поэтому вместо нее есть какой-либо другой способ. – Arunachalam

+0

Вы сказали, что используете для этой цели datagrid. Тогда для чего вам нужен другой контроль? – rahul

ответ

2

В среде winforms вы можете привязывать строго типизированные коллекции в качестве источника данных; Каждое свойство объектов в коллекции делает столбец (строго говоря, я считаю, что он работает с свойствами для типа, который возвращает коллекция, а не отдельных элементов)

1

Если вы пишете приложение WinForms, то вы можете использовать DataTable для хранения данных и DataGridView для его отображения. Просто создать DataTable:

dataTable = new DataTable(); 

Создать столбцы нужно программно:

var columnSpec = new DataColumn(); 
columSpec.DataType = typeof(decimal); // If it holds a decimal 
columSpec.ColumnName = "Interest Rate"; 
dataTable.Columns.Add(columnSpec); 

Добавьте DataGridView в форму с помощью конструктора - но не делают и то, как только таблица была создана привязать его к сетке с использованием:

dataGridView.DataSource = dataTable; 

Вы можете установить свойства в сетке из дизайнерского вида.

Я сделал это в режиме только для чтения, где DataTable заполнен из программы и просто отобразил его. Все, что пользователь может сделать, это изменить размер, изменить порядок или установить видимость в столбцах. Для добавления новых строк вам нужно подключить в RowsAdded событие

0

Re-редакции Rowland Shaw

Вам не нужно иметь базу данных для привязки к сетке. Если у вас есть данные, заполненные строго типизированной или общей коллекцией, вы можете привязать datagrid к коллекции. Дантард заполнит данные из коллекции.

В качестве столбцов будут указаны имена свойств, а строки будут отображаться в соответствии с строками в коллекции.

Если вам нужен пользовательский ввод, то я думаю, вам стоит рассмотреть возможность использования лучшего управления сеткой. Дантагрид не подходит для этой цели. Я не помню, если flexgrid (ocx one) был переделан для .Net.

0

Вы можете использовать datagridview и построить datatable и добавить столбцы через свой код и установить datatasource вашего datagridview в качестве этого datatable и установить AllowUserToAddRows в окне свойств Dataggridview на true (true - значение по умолчанию).

Если вы хотите сделать расчет после создания полного обновления ro, вы можете использовать событие RowPrePaint или если вы хотите, чтобы расчет производился после обновления данных в каждой ячейке, вы можете использовать событие CurrentCellChanged для DataGridView.

Надеюсь, что это поможет ....