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

Как отловить событие при завершении редактирования свойства?

20.03.2023, 11:15. Показов 2389. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Делаю таблицу редакторов свойств.

C++
1
2
3
4
            CMFCPropertyGridProperty* pGroup1 = new CMFCPropertyGridProperty(_T("Группа"));
 
            CMFCPropertyGridProperty* pProp = new CMFCPropertyGridProperty(_T("Имя"), mf->ObjectsList[pID].ObjectName, _T("ObjectName"));
            pGroup1->AddSubItem(pProp);
Создаю группу и в ней одно свойство.

Как обработать событие при завершении редактирования пользователем этого свойства?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.03.2023, 11:15
Ответы с готовыми решениями:

Событие при завершении редактирования ячейки DataGridView
Мне удалось организовать перебор, нет ли в datagridview повторяющихся значений всего один столбец и 50 строк, но вот проблема, эсли...

Как отловить событие редактирования в шаблонном столбце GridView
Имеется GridView с шаблонным полем, в котором лежит TextBox в ItemTemplate (остальные темплэйты этого поля, в частности EditItemTemplate, -...

PropertyGrid. Как отловить видимость свойства в зависимости от другого свойства?
Работаю с propertyGrid. Одно поле высвечивается, когда в другом появляется определенное значение. Взяла за основу раздел «Как управлять...

11
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
20.03.2023, 11:46
Ты хоть пиши, что это за среда.
0
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 43
20.03.2023, 12:19  [ТС]
Visual Studio 2022

Добавлено через 28 минут
У свойства есть событие

C++
1
onEndEdit
Никак не могу понять, как его обрабатывать.
0
фрилансер
 Аватар для Алексей1153
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,146
20.03.2023, 12:21
Цитата Сообщение от ps12 Посмотреть сообщение
Никак не могу понять, как его обрабатывать.
это виртуальный метод

нужно унаследоваться от CMFCPropertyGridProperty, в потомке переопределить метод
0
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 43
20.03.2023, 12:29  [ТС]
Стало еще непонятнее
0
фрилансер
 Аватар для Алексей1153
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,146
20.03.2023, 13:09
ps12,

C++
1
2
3
4
5
6
7
8
9
class MyCMFCPropertyGridProperty : public CMFCPropertyGridProperty
{
    BOOL OnEndEdit() override
    {
         //тут делаешь свою обработку
 
         return CMFCPropertyGridProperty::OnEndEdit();
    }
};
0
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 43
20.03.2023, 13:30  [ТС]
Свойства создавать уже от класса MyCMFCPropertyGridProperty ?
0
фрилансер
 Аватар для Алексей1153
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,146
20.03.2023, 13:31
ps12, да, создавать нужно экземпляр MyCMFCPropertyGridProperty
0
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 43
20.03.2023, 15:22  [ТС]
Спасибо!

Добавлено через 1 час 36 минут
Что-то я не понимаю

Сделал класс в *.h файле

C++
1
2
3
4
5
6
7
8
9
class GridProperty : public CMFCPropertyGridProperty
{
    BOOL OnEndEdit() override
    {
        //тут делаешь свою обработку
 
        return CMFCPropertyGridProperty::OnEndEdit();
    }
};
В *cpp файле пишу

C++
1
2
        GridProperty* pGroup1 = new GridProperty(_T("Группа"));
            GridProperty* pProp = new GridProperty(_T("Имя"), mf->ObjectsList[pID].ObjectName, _T("ObjectName"));
Компилятор выдает ошибки

C++
1
2
Ошибка    C2661   GridProperty::GridProperty: нет перегруженной функции, принимающей 3 аргументов S
Ошибка    C2665   "GridProperty::GridProperty": ни одна перегруженная функция не может преобразовать все типы аргументов
0
фрилансер
 Аватар для Алексей1153
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,146
20.03.2023, 17:44
ps12, подправь так

C++
1
2
3
4
5
6
7
8
9
10
11
12
class GridProperty : public CMFCPropertyGridProperty
{
public:
    using CMFCPropertyGridProperty::CMFCPropertyGridProperty;
 
    BOOL OnEndEdit() override
    {
        //тут делаешь свою обработку
 
        return CMFCPropertyGridProperty::OnEndEdit();
    }
};
0
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 43
20.03.2023, 17:59  [ТС]
Спасибо, сработало!

Теперь возник другой вопрос - как определить, какое из свойств было отредактировано?
0
фрилансер
 Аватар для Алексей1153
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,146
20.03.2023, 18:02
ps12, возможно, тут
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.03.2023, 18:02
Помогаю со студенческими работами здесь

Событие при завершении потоков
Thread Threads = new Thread; ...... Ну и стартуем потоки. Подскажите хочу сделать событие чтобы после того как все потоки...

Как отловить событие перемещения курсора при зажатой левой кнопке мыши
Искал на форуме не нашел как можно реализовать такую штуку? Хочу отловить событие перемещения курсора при зажатой левой кнопке мыши. К...

Как выполнить код при экстренном завершении программы / завершении отладки / появлении ошибки
Я обучаюсь работать с библиотекой для работы с Excel, и столкнулся с проблемой. При завершении работы принудительно во время выполнения...

PowerPoint событие при начале показа или завершении
Подскажите как сделать чтобы событие выполнялось по началу показа презентации или по её окончании ? Нужно TextBox почистить при этом...

Необходимо событие, которое срабатывало бы при завершении работы программы
Необходимо событие которое срабатывало бы при завершении работы программы.Почитал,советуют использовать TApplication.OnDeactivate. Вот...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru