Выделить столбец в DataGrid (System.Windows.Forms.DataGrid)
От: i_n_s_a_n_e  
Дата: 03.10.06 19:08
Оценка:
Который день мучаюсь с казалось бы элементарной проблемой: выделить столбец по клику мыши.

Пока что сделал через сабклассинг: отнаследовался от DataGridTextBoxColumn, переопределил метод Paint.
Каждый раз при нажатии мыши меняю DataGridTableStyle (ставлю свой DataGridColumnStyle выделенному столбцу, для остальных делаю DataGridTextBoxColumn).

Столбец выделяется медленно, сбрасывается положение прокрутки и ширина колонки.

Может быть есть более лучший способ?
Re: Выделить столбец в DataGrid (System.Windows.Forms.DataGr
От: i_n_s_a_n_e  
Дата: 03.10.06 19:59
Оценка:
Здравствуйте, i_n_s_a_n_e, Вы писали:

___>Который день мучаюсь с казалось бы элементарной проблемой: выделить столбец по клику мыши.


___>Пока что сделал через сабклассинг: отнаследовался от DataGridTextBoxColumn, переопределил метод Paint.

___>Каждый раз при нажатии мыши меняю DataGridTableStyle (ставлю свой DataGridColumnStyle выделенному столбцу, для остальных делаю DataGridTextBoxColumn).

___>Столбец выделяется медленно, сбрасывается положение прокрутки и ширина колонки.


___>Может быть есть более лучший способ?


Неужели никому не приходилось выделять столбец? Или все пользуются какими то другими контролами???
Re[2]: Выделить столбец в DataGrid (System.Windows.Forms.Dat
От: Andrew_ImP  
Дата: 04.10.06 05:55
Оценка:
FW 2.0 DataGridView.

* Use the SelectedColumns property. To enable users to select columns, you must set the SelectionMode property to FullColumnSelect or ColumnHeaderSelect.

C# Copy Code


private void selectedColumnsButton_Click(object sender, System.EventArgs e)
{
    Int32 selectedColumnCount = dataGridView1.Columns
        .GetColumnCount(DataGridViewElementStates.Selected);
    if (selectedColumnCount > 0)
    {
        System.Text.StringBuilder sb = new System.Text.StringBuilder();

        for (int i = 0; i < selectedColumnCount; i++)
        {
            sb.Append("Column: ");
            sb.Append(dataGridView1.SelectedColumns[i].Index
                .ToString());
            sb.Append(Environment.NewLine);
        }

        sb.Append("Total: " + selectedColumnCount.ToString());
        MessageBox.Show(sb.ToString(), "Selected Columns");
    }
}

Оно?
Re[3]: Выделить столбец в DataGrid (System.Windows.Forms.Dat
От: i_n_s_a_n_e  
Дата: 04.10.06 06:07
Оценка:
Здравствуйте, Andrew_ImP, Вы писали:

A_I>FW 2.0 DataGridView.


К сожалению у меня Visual Studio 2003, а в нем нет контрола DataGridView.
Re: Выделить столбец в DataGrid (System.Windows.Forms.DataGr
От: i_n_s_a_n_e  
Дата: 04.10.06 09:33
Оценка:
Здравствуйте, i_n_s_a_n_e, Вы писали:

___>Который день мучаюсь с казалось бы элементарной проблемой: выделить столбец по клику мыши.


___>Пока что сделал через сабклассинг: отнаследовался от DataGridTextBoxColumn, переопределил метод Paint.

___>Каждый раз при нажатии мыши меняю DataGridTableStyle (ставлю свой DataGridColumnStyle выделенному столбцу, для остальных делаю DataGridTextBoxColumn).

___>Столбец выделяется медленно, сбрасывается положение прокрутки и ширина колонки.


___>Может быть есть более лучший способ?


Ужас, неужели никто не пользовался DataGrid ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.