Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Клик по ячейке в GridControl


Автор: rucan 6.8.2008, 10:35
Каким образом можно щелчком мыши по выбранной ячейке в GridControl скопировать значение ячейки, находящейся в строке, по которой кликнули?
DevExpress.

Автор: mr.DUDA 6.8.2008, 10:40
Получить значение в текущей (выбранной) строке грида:
http://forum.vingrad.ru/index.php?show_type=forum&showtopic=88783

Скопировать в буфер обмена - см. класс Clipboard

Автор: rucan 6.8.2008, 11:09
Пытаюсь сделать вышеуказанным способом
для DataGridView все отлично получается
Код

CurrencyManager cmgr = (CurrencyManager)this.contactsDataGridView.BindingContext[this.contactsDataGridView.DataSource];
            DataRow row = ((DataRowView)cmgr.Current).Row;
            string Name = row["Name"].ToString();

А вот для GridControl не выходит

Код

CurrencyManager cmgr = (CurrencyManager)this.gridView1.BindingContext[this.gridView1.DataSource];
            DataRow row = ((DataRowView)cmgr.Current).Row;
            string Name = row["Name"].ToString();


Я беру gridView1 от GridControl (DevExpress).

Пишет эксепшн
'DevExpress.XtraGrid.Views.Grid.GridView' does not contain a definition for 'BindingContext'

Что можно сделать?



Автор: rucan 6.8.2008, 11:25
В случае же
Код

CurrencyManager cmgr = (CurrencyManager)this.gridControl5.BindingContext[this.gridControl5.DataSource];
            DataRow row = ((DataRowView)cmgr.Current).Row;
            string Name = row["Name"].ToString();


Никаких эксепшенов нет, но и нет результата никакого (значение Name).

Автор: Partizan 6.8.2008, 11:25
это не exception, у вас просто ошибка компиляции, т.к. нету свойства BindingContext в гриде...
вам надо просто получить Value ячейки...

Автор: rucan 6.8.2008, 11:45
Нашел причину. Ура! Все работает. Спасибо.

Автор: mr.DUDA 6.8.2008, 13:45
У DevExpress-ного гридконтрола есть активный View, через него работаем.

Автор: rucan 7.8.2008, 09:23
Спасибо. Все получилось!
У меня ещё такой вопрос возник.
Допустим я щелкнув по ячейке в gridControl1, получил значение ID.
Код

CurrencyManager cmgr = (CurrencyManager)this.gridControl1.BindingContext[this.gridControl1.DataSource];
            DataRow row = ((DataRowView)cmgr.Current).Row;
            string id = row["ID"].ToString();


Как можно передвинуть курсор на значение этого ID в другом gridControl-е gridControl2?

Автор: Partizan 7.8.2008, 10:07
rucan, установить позицию можно через CurrencyManager.Position

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)