Форум программистов, компьютерный форум, киберфорум
Наши страницы

Visual Basic

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
tigerxml
0 / 0 / 0
Регистрация: 14.09.2007
Сообщений: 1
#1

Неполучается отредактировать данные в MSFlexGrid - VB

17.09.2007, 17:50. Просмотров 1482. Ответов 1
Метки нет (Все метки)

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

Если это невозможно то посоветуйте что можно использовать(желательно не коммерческое) для создния списка свойств(название - значение, как в дельфи или VB при редактировании свойств контрола)?
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2007, 17:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Неполучается отредактировать данные в MSFlexGrid (VB):

Изменить данные в ячейке MSFlexGrid с координатами (5,5) - Visual Basic
Ребята как мне изменить данные в ячейке MSFlexGrid с координатами (5,5)

Как загрузить в MSFlexGrid данные из буфера обмена? - Visual Basic
Как загрузить в MSFlexGrid данные из буфера обмена? данные табличного типа, появляются в Clipboad'е из Excel...

Как из MSFlexGrid перенести данные в Exel 2007 ? - Visual Basic
ну думаю из названия все понятно. На форме есть таблица MSFlexGrid в которой отображаются записи из базы данных. надо все эти записи...

Сохранить данные после удаления строки в MSFlexGrid - Visual Basic
После добавлении\редактирования строк с последующим сохранением данных все работает как надо, прога подгружает все данные добавленные...

Позволить пользователю самому вводить данные в MsFlexGrid - Visual Basic
Как использовать MsFlexGrid ??? как позвателю позволить самому вводить данные в таблицу?

Как данные, возвращаемые запросом, вставить в MSFlexGrid? - Visual Basic
Подскажите кто знает, как данные возвращаемые запросом вставить в MSFlexGrid?

1
AlexeyTyurin
0 / 0 / 0
Регистрация: 28.08.2007
Сообщений: 171
18.09.2007, 09:20 #2
Редактирование данных в сетке
MSFlexGrid не имеет встроенных возможностей для редактирования значений в ячейках, но это возможно реализовать при помощи специальной процедуры Преимущество этого метода состоит в том, что Вы можете приспособить обработку данного события так как Вы хотите. Принцип метода состоит в том, что редактирование происходит не в ячейке элемента MSFlexGrid, а в стандартном элементе управления TextBox, который позиционируется точно над этой ячейкой.
В данном примере, мы хотим показать юзеру два метода решения задачи редактирования значений в ячейке, первый, по двойному клику по ячейке, второй, просто печатая значение в ячейку. Следующие две прогаммы осуществляют это.:

Private Sub MSFlexGrid1_DblClick()
GridEdit Asc(' ')
End Sub

Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)
GridEdit KeyAscii
End Sub

В каждом случае мы вызываем подпрограмму редактирования ячеек сетки и передаем в ей значения нажатых клавиш. В случае двойного нажатия, мы передаем знак пробел как флаг. Подпрограмма GridEdit инициализирует окно редактирования и перемещает его в необходимую позицию:

Sub GridEdit(KeyAscii As Integer)
'использовать текущий шрифт
Text1.FontName = MSFlexGrid1.FontName
Text1.FontSize = MSFlexGrid1.FontSize
Select Case KeyAscii
Case 0 To Asc(' ')
Text1 = MSFlexGrid1
Text1.SelStart = 1000
Case Else
Text1 = Chr(KeyAscii)
Text1.SelStart = 1
End Select

'позиционирование окна редактирования
Text1.Left = MSFlexGrid1.CellLeft + MSFlexGrid1.Left
Text1.Top = MSFlexGrid1.CellTop + MSFlexGrid1.Top
Text1.Width = MSFlexGrid1.CellWidth
Text1.Height = MSFlexGrid1.CellHeight
Text1.Visible = True
Text1.SetFocus
End Sub
В целях демонстрации, инструкция Case в процедуре GridEdit иллюстрирует два различных случая при переходе в режим редактирования. Практически Вы используете только один из них, или другой созданный Вами. Если режим редактирования вызван двойным щелчком, или нажатием клавиши CTRL, мы копируем содержимое ячейки в поле вывода и помещаем курсор в конец строки. Если режим редактирования вызван, нажатием любой другой клавиши, мы игнорируем первоначальное содержание ячейки и вставляем нажатую клавишу(код или символ) в окно редактирования. Позиционирование может быть сделано методом Move. Здесь мы использовали четыре строки так, чтобы это читалось более легко. Обратите внимание, что MSFLEXGRID дает нам всю координатную информацию в удобной форме..
Затем, мы нуждаемся в паре подпрограмм, которые обрабатывают служебные действия, когда пользователь перемещается в другую ячейку или перемещает фокус назад в сетку из другого контрола. Обработка события LeaveCell - также необходима, в данной процедуре Вы могли бы поместить любой код проверки правильности данных или другой
.
Private Sub MSFlexGrid1_LeaveCell()
If Text1.Visible Then
MSFlexGrid1 = Text1
Text1.Visible = False
End If
End Sub

Private Sub MSFlexGrid1_GotFocus()
If Text1.Visible Then
MSFlexGrid1 = Text1
Text1.Visible = False
End If
End Sub

Затем мы размещаем некоторый навигационный код в процедуру обработки события KeyDown окна редактирования для того, чтобы, пользователь мог остановить режим редактирования, нажимая ESC, и двигаться в любую другую строку, нажимая клавиши курсора:

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyEscape
Text1.Visible = False
MSFlexGrid1.SetFocus
Case vbKeyReturn
MSFlexGrid1.SetFocus
Case vbKeyDown
M
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2007, 09:20
Привет! Вот еще темы с ответами:

Возможно ли в MSFlexGrid перетаскивать мышой данные из одной ячейки в другую ? - Visual Basic
Привет ! Подскажите, пожалуйста, люди, возможно ли в MSFlexGrid перетаскивать мышой данные из одной ячейки в другую ? Поддерживается ли это...

Как построить график в Excel программно, если данные получены из MSFlexGrid VB6 - Basic
Всем привет! Я сделал програмку в VB6 для расчёта трансцендентного уравнения. Результаты выводятся в MSFlexGrid(в которой почему-то не...

Сортировка в MSFlexGrid - Visual Basic
В Access я создал базу с несколькими полями. Первое поле - ключ. Сортировка происходит автоматически при загрузке формы в алфавитном...

Сортировка в MSFlexGrid - Visual Basic
Сортировка MSFlexGrid.Sort по колонке, в которой содержатся данные типа Date или Date+Time происходит неверно. Как решить эту проблему,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru