![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
prigur |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 6.10.2013 Репутация: нет Всего: нет |
Есть на форме элемент DevExpress.XtraTreeList.TreeList (или System.Windows.Forms.DataGridView).
Заполняем таблицу тестовыми данными: DataTable TableTree = new DataTable(); TableTree.Columns.Add("ID", typeof (int)); TableTree.Columns.Add("Name", typeof(string)); TableTree.Columns.Add("ParentID", typeof(int)); TableTree.Columns.Add("Value", typeof(string)); TableTree.PrimaryKey = new DataColumn[]{TableTree.Columns[0]}; DataRow row_ = TableTree.NewRow(); row_.BeginEdit(); row_["ID"] = 0; row_["ParentID"] = DBNull.Value; row_["Name"] = "Ветвь 1"; row_["Value"] = ""; row_.EndEdit(); TableTree.Rows.Add(row_); row_ = TableTree.NewRow(); row_.BeginEdit(); row_["ID"] = 1; row_["ParentID"] = 0; row_["Name"] = "Ветвь 2"; row_["Value"] = ""; row_.EndEdit(); TableTree.Rows.Add(row_); row_ = TableTree.NewRow(); row_.BeginEdit(); row_["ID"] = 2; row_["ParentID"] = DBNull.Value; row_["Name"] = "Ветвь 3"; row_["Value"] = ""; row_.EndEdit(); TableTree.Rows.Add(row_); Связываем элемент с таблицей и делаем начальные установки: - в случае TreeList: treeListTest.RootValue = DBNull.Value; treeListTest.DataSource = TableTree; treeListTest.ExpandAll(); - в случае DataGridView: dataGridView1.DataSource = TableTree; Связываем поле какого-нибудь текстового элемента на форме со столбцом "Value" таблицы: textBox1.DataBindings.Add("Text", TableTree, "Value", true, DataSourceUpdateMode.OnPropertyChanged); Устанавливаем обрабочики для таблицы: TableTree.ColumnChanged += new DataColumnChangeEventHandler(HandleColumnChangeEventTableTreeData); BindingContext[TableTree].PositionChanged += new EventHandler(TableTree_PositionChanged); void HandleColumnChangeEventTableTreeData(object sender, DataColumnChangeEventArgs e) { } void TableTree_PositionChanged(object sender, EventArgs e) { } Запускаем, в элементе DataGridView или TreeList встаём, например, на вторую строку, и изменяем значение в текстовом поле, в результате срабатывает ColumnChanged и попадаем в HandleColumnChangeEventTableTreeData, - всё правильно. Но если теперь просто переместимся на третью строку, то почему-то опять срабатывает ColumnChanged (вновь попадаем в HandleColumnChangeEventTableTreeData), и лишь только потом в TableTree_PositionChanged (срабатывает PositionChanged). Чем вызвано повторное лишнее срабатывание ColumnChanged при переходе на другую строку, и как от этого избавиться? |
|||
|
||||
Telepyz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 119 Регистрация: 9.7.2007 Репутация: нет Всего: 1 |
Если мне не изменяет память, то при перемещении по строкам выбирается ячейка (выбирается строка, столбец), а то что выбрана вся строка это всего лишь опция ГридВью, который подкрашивает всю строку с выбранной ячейкой
Так что в принципе все верно --------------------
обновить драйвер |
|||
|
||||
prigur |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 6.10.2013 Репутация: нет Всего: нет |
Когда стоим на строке (хорошо, пусть будет - на ячейке) и меняем значение, то об этом приходит сообщение. А если перемещаемся затем на следующую строку, то опять же приходит сообщение об изменении этого поля (явно лишнее), и только потом - что перешли на новую строку.
|
|||
|
||||
prigur |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 6.10.2013 Репутация: нет Всего: нет |
Максимально упрощённый тестовый пример.
Присоединённый файл ( Кол-во скачиваний: 2 ) ![]() |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |