Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Сообщение

anton-09


Принципиальный молчун

Зарегистрирован:
24 June 2008
Сообщения: 9
Примеры кода: 0
 

Вопрос по заголовкам строк

24 June 2008 17:10  


Добрый день, посмотрите пожалуйста простейший пример проекта грида, написанного руками.
В нем - 4 вариант установки заголовка строки. Из них первые 2 вариант, описанные в MSDN - не работают! Зато найденные два обходных варианта более-менее работают. В чем проблема со стандартными вариантами? Может быть я что-то важное пропустил? Кстати, если проект создать Form Designer'ом, то вариант 1 работает!!

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Data;

class Test : Form
{
DataGridView grid;

[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.Run(new Test());
}
public Test()
{
// Создаем таблицу и датасет
DataSet dsFruit = new DataSet();
DataTable tbl = new DataTable("Fruit");
DataColumn col = tbl.Columns.Add("Description", typeof(string));
col.AllowDBNull = false;
dsFruit.Tables.Add(tbl);

// Заполняем таблицу датасета данными
DataRow row;
row = tbl.NewRow();
row["Description"] = "Яблоки";
tbl.Rows.Add(row);
row = tbl.NewRow();
row["Description"] = "Груши";
tbl.Rows.Add(row);
row = tbl.NewRow();
row["Description"] = "Персики";
tbl.Rows.Add(row);

// Теперь создаем экземпляр BindingSource
BindingSource bsFruit = new BindingSource(dsFruit, "Fruit");

// Грид
grid = new DataGridView();
grid.Parent = this;
grid.DataSource = bsFruit;

// Вариант 1 - не работает
grid.Rows[1].HeaderCell.Value = "Header0";

// Вариант 2 - не работает
foreach (DataGridViewRow row1 in grid.Rows)
{
row1.HeaderCell.Value = row1.Index.ToString();
}

// Вариант 3 - работает
//grid.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(grid_CellFormatting);

// Вариант 4 - работает, но вариант плохой, т.к. рисует в фиксированном месте грида
//grid.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(grid_RowPostPaint);
}

void grid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
grid.Rows[e.RowIndex].HeaderCell.Value = e.RowIndex.ToString();
}

void grid_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
using (SolidBrush b = new SolidBrush(grid.RowHeadersDefaultCellStyle.ForeColor))
{
Font fnt = new Font("verdana", 10);
e.Graphics.DrawString(e.RowIndex.ToString(System.Globalization.CultureInfo.CurrentUICulture), fnt, b, e.RowBounds.Location.X + 20, e.RowBounds.Location.Y + 4);
}
}
}

Данное сообщение получено с сайта GotDotNet.RU
Последний раз редактировалось 24 June 2008 17:09
Наверх
  



Winforms

 Вопрос по заголовкам строкanton-09  24 June 2008 17:10
 Вопрос по заголовкам строкky4er  24 June 2008 18:57
 Вопрос по заголовкам строкky4er  24 June 2008 18:57
 Вопрос по заголовкам строкanton-09  24 June 2008 19:14
 Вопрос по заголовкам строкky4er  24 June 2008 19:46
 Вопрос по заголовкам строкky4er  24 June 2008 20:06
 Вопрос по заголовкам строкky4er  24 June 2008 20:09
 Вопрос по заголовкам строкanton-09  24 June 2008 20:45
 Вопрос по заголовкам строкky4er  25 June 2008 11:23
 
Наш Киев

Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта