Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
tigerxml

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

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

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

Если это невозможно то посоветуйте что можно использовать(желательно не коммерческое) для создния списка свойств(название - значение, как в дельфи или VB при редактировании свойств контрола)?
Заранее спасибо.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.09.2007, 17:50
Ответы с готовыми решениями:

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

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

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

1
0 / 0 / 0
Регистрация: 28.08.2007
Сообщений: 171
18.09.2007, 09:20
Редактирование данных в сетке
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.09.2007, 09:20
Помогаю со студенческими работами здесь

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

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

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

Получить ВСЕ данные из таблицы MSFlexGrid в двумерный массив
Собственно, как это сделать? В гугле написано что надо по ячейке всё перебирать. А это как то не комильфо. Есть нормальные способы решения?

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru