В датагридвью как 2 колонки что замерзнет? - PullRequest
3 голосов
/ 13 июля 2010

У меня datagridview в моей программе на C #

, и когда я перемещаю полосу прокрутки влево, я хочу, чтобы 2 правых столбца

зависли и не двигались.

как это сделать?

Ответы [ 4 ]

14 голосов
/ 13 июля 2010

Theres свойства в разделе столбцов в datagridview, чтобы заморозить столбцы.

Перейти к вашему обзору данных -> Столбцы -> (столбец, который вы хотите заморозить) -> Frozen = True

EDIT:

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

РЕДАКТИРОВАТЬ 2:

Чтобы заставить его заморозить столбцы на право включить "RightToLeft" собственность на датагрид. Это меняет порядок отображения столбцов и позволяет самым правым столбцам быть замороженная.

dataGridView1.Columns["columnname"].Frozen = true;
dataGridView1.RightToLeft = Enabled;
1 голос
/ 13 июля 2010

Вы можете использовать одно из значений перечисления DataGridViewElementStates.

Либо используйте индекс:

dataGridView1.Columns[0].Frozen = true;

, либо используйте имя столбца:

dataGridView1.Columns["columnName"].Frozen = true;

Вы также можете использовать метод DataGridViewColumnCollection.GetFirstColumn():

dataGridView1.Columns.GetFirstColumn(DataGridViewElementStates.Frozen);

Я бы лично пошел с индексом, поскольку вы хотите, чтобы два первых столбца зависли.Затем, когда вы захотите изменить эти замороженные столбцы, вам нужно будет только изменить их индекс в дизайне.

Что касается того, чтобы сделать два столбца справа замороженными, я просто привел бы их вправо, этоболее эргономичный способ сделать это, поскольку большую часть времени мы читаем слева направо.

0 голосов
/ 16 декабря 2016
dataGridView1.Columns["columnname"].Frozen = true;
0 голосов
/ 15 марта 2013
private void Button4_Click(object sender, System.EventArgs e)
{

    FreezeBand(dataGridView.Rows[0]);
}

private void Button5_Click(object sender, System.EventArgs e)
{

    FreezeBand(dataGridView.Columns[1]);
}

private static void FreezeBand(DataGridViewBand band)
{
    band.Frozen = true;
    DataGridViewCellStyle style = new DataGridViewCellStyle();
    style.BackColor = Color.WhiteSmoke;
    band.DefaultCellStyle = style;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...