Доброго всем дня . У меня есть форма на которой 16 текстбоксов, а рядом с ними кнопки которые по макросу вызывают форму календаря. При выборе даты в календаре это значение должно вставиться в текстбокс находящийся рядом с той кнопкой которую активировал пользователь. Не хочется плодить формы календаря и делать их 16 штук что бы в каждой прописать конкретный текстбокс куда нужно вставить дату. Вопрос.....Можно ограничиться одной формой календаря, а номер текстбокса сделать переменной...при нажатии кнопки создавалась бы константа с номером текстбокса и она использовалась бы потом в форме календаря для определения куда потом вставлять дату... Немного сумбурно описал за что прошу прощения.. Уверен знатоки этого форума подскажут как это реализовать.. Заранее спасибо всем кто откликнется на мою просьбу.
Прикладываю пример, а то описание получилось совсем не понятным... В примере видно что какой бы кнопкой не вызывалась форма с календарем выбранная дата вставляется в ТекстБокс1 так как он прописан в форме календаря. А нужно что бы дата вставлялась в текстбокс рядом с кнопкой которой активировали форму календаря.
В файле админы макросы режут, так что формы/кода не вижу, но думаю целевой текстбокс можно передавать в параметре (доработать), или загонять в публичную переменную. Ну а понятие "рядом" не видя формы - очень расплывчато Понимаете о чём я? Код тоже форму не видит...
Hugo если честно не совсем понял....что значит режут?...я скачал пример и открыв его вижу и формы и макросы... Если не сложно поясните пожалуйста о чем речь.
kviona, Hugo говорит о том, что не может скачивать файлы с макросами ) По вопросу: не нужно 16 календарей - используйте один для всех нужд ) Дополню: я обычно вызываю календарь для Текст Бокса не кнопкой, а кликом по самому ТекстБоксу - тогда и контролов меньше и проще определить, в какой ТекстБокс вносить данные из календаря.
Юрий М, Спасибо...мысль интересная...я не подумал что можно вызвать календарь через текстбокс. Все гениальное просто ) Так будет безусловно проще...не плодить кучу кнопок .. Единственно я не понял каким способом определить в какой текст бокс вставлять выбранную дату ?? Если не трудно поясните пожалуйста..
Юрий М,я понял ...думал об этом, но не понятно другое..при активации формы календаря основная форма становиться не активной...как дать понять что считать активным контролом...?
Logistic,Спасибо огромное....решение хорошее...но не совсем удобное в плане того что на каждый текстбокс приходиться прописывать условие..а если их 40 так вообще смерть ) Я не в коем образе не хочу вас обидеть...правда большое спасибо...просто хочу понять возможно обойтись в данном случае меньшей кровью..
Для вызова календаря я использую событие ТекстБокса MouseUp. В этот момент на основной форме активен именно тот ТекстБокс, по которому кликнули. А после выбора даты в форме с календарём следует указать: ГлавнаяФорма.ActiveControl = Календарь.value P.S. Ваш файл не смотрел...
vikttur,и то верно...прошу прощения.Удачных всем выходных. Logistic,спасибо Вам огромное. Полезная ссылка. Сегодня уже поздно но завтра почитаю... Удачных Вам выходныи и спасибо что не остались равнодушным ) Удачи Вам.
Юрий М,Доброе утро. Рано я вчера порадовался Перенес все в свой проект и столкнулся с ошибкой. У меня все текстбоксы разбиты для удобства на смысловые группы (выезд 1, выезд 2....и так далее) и объеденены с помощью Frame1,Frame2,...и так далее.и все это объеденено одним общим Frame который имеет скролл так как не все данные помещаются на экране. И здесь видимо начинается конфликт...теряется понятие ActiveControl....календарь открывается но выбрав дату макрос не может понять куда её вставить. Я понял что нужно перед ActiveControl. вставить Frame в котором лежит текстбокс. и если бы все текстбоксы были объеденены одним Frame проблем не было бы но как быть в моем случае ?...не ужели придеться делать столько форм с календарем сколько Frame ???? Подскажите что можно сделать. Обидно если в моем проекте это не возможно будет использовать. Прикладываю принт с ошибкой...Если нужно могу приложить примерчик..
Юрий М,спасибо. Я попытался произвести замену Frame на Label с прозрачным фоном и спец.рамкой (получилось визуально как и в случае использования Frame)...все работает...одно не удобно....переход кнопкой Tab не совсем корректно работает...выходит за границы блока... Да и если понадобиться переместить блок объединенный Frame перемещается вместе с содержимым....а Label сам по себе...если только с группировать все командой "сгруппировать" но не пробовал будет работать или нет ) Файл примера я так понял уже не нужен?
Но ведь переход по Tab можно настроить по своему вкусу: правый клик по форме - Tab Order. И перемещайте контролы в нужной последовательности. Перемещать можно сразу группу контролов: кликаем по ним, удерживая Ctrl - собрали группу, а потом таскаем её по форме )
kviona, посмотрите как реализовано здесь. Передача объекта через переменную. И еще определение координат control'a выводится не зависимо от глубины вложенности во fram'ы, например. Можете этот принцип использовать. Если не понятно спрашивайте.