Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2012, 17:57   #1
Lapochka
Пользователь
 
Регистрация: 27.05.2010
Сообщений: 24
По умолчанию Работа с календарем С#

При нажатии на textBox должен выскакивать календарь,оттуда выбираем дату и она становиться в textBox,календарь пропадает.
С этим компонентом никогда не работала.Буду очень благодарна кто отзовется
Lapochka вне форума Ответить с цитированием
Старый 12.05.2012, 21:51   #2
Гаврилов
Пользователь
 
Регистрация: 11.05.2012
Сообщений: 85
По умолчанию

Здравствуйте, Лапочка!
Лучше всего 1 раз сделать самому (самой), и тогда Вы сразу почувствуете, как стали на порядок уверенней себя чувствовать в C#. А принцип я предлагаю такой: создать Control, состоящий из двух элементов, занимающих ровно одно и то же место: календаря и текстбокса. В "спокойном" состоянии (read only) пользователь видит текстбокс, а календарь невидим. В состоянии "редактирование" - наоборот. Как переключать эти состояния, зависит от Вашего приложения. При переключении содержимое передаётся от одного элемента другому с конвертацией типа данных. Можно к этому пользовательскому элементу добавить третий входящий элемент - Label для надписи ("Дата документа", например). Программировать в таком стиле всё равно придётся, так что, стоит потрудиться - труд не пропадёт. Маленькая подсказка: в качестве исходного контрола, контейнера для размещения всех трёх элементов можно использовать такой элемент - TableLayoutPanel. Создайте UserControl, затем замените родительский тип в объявлении класса " : UserControl" на " : TableLayoutPanel", добавьте в этот элемент Label, TextBox и DateTimePicker и инкапсулируйте как можно больше их свойств и обработчиков событий внутри TableLayoutPanel. Например, можно добавить свойство Boolean is_changed = false : было ли сделано изменение. Если Вы пользуетесь Visual Studio, этот новый элемент попадёт в ToolBox наряду со всеми прочими стандартными элементами управления. Успеха!

Последний раз редактировалось Гаврилов; 12.05.2012 в 21:53.
Гаврилов вне форума Ответить с цитированием
Старый 12.05.2012, 23:36   #3
Lapochka
Пользователь
 
Регистрация: 27.05.2010
Сообщений: 24
По умолчанию

Благодарю за подсказку!
Я нашла другой выход из этой ситуации, через компонент dateTimePicker.
Lapochka вне форума Ответить с цитированием
Старый 13.05.2012, 05:45   #4
Гаврилов
Пользователь
 
Регистрация: 11.05.2012
Сообщений: 85
По умолчанию

Если не трудно: что это за "компонент", из Delphi?
Гаврилов вне форума Ответить с цитированием
Старый 13.05.2012, 11:50   #5
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

Он есть стандартный... в 3.5 походу добавили
Reskov вне форума Ответить с цитированием
Старый 13.05.2012, 12:02   #6
Гаврилов
Пользователь
 
Регистрация: 11.05.2012
Сообщений: 85
По умолчанию

Никогда не был сторонником такого стиля "программирования", который принят "дельфистами": прежде всего искать чужие компоненты. У "сишников" это почему-то не принято. Всегда компонент оказывается не совсем таким, как нужно. Совсем таким его можно сделать только самостоятельно - для этого и развивались средства разработки на C# в сторону создания пользовательских и специальных элементов управления (User Control и Custom Control).
Гаврилов вне форума Ответить с цитированием
Старый 13.05.2012, 12:12   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Всегда компонент оказывается не совсем таким, как нужно.
странное утверждение, если ТС он устраивает, то зачем городить свое?
скучно? времени много?
Цитата:
Никогда не был сторонником такого стиля "программирования", который принят "дельфистами": прежде всего искать чужие компоненты. У "сишников" это почему-то не принято.
вы наверно и обычные контролы сами строите да?
нет ничего плохого в повторении использования кода.
проблема это когда на любое действие ищется готовый компонент.
Цитата:
Совсем таким его можно сделать только самостоятельно - для этого и развивались средства разработки на C# в сторону создания пользовательских и специальных элементов управления (User Control и Custom Control).
да, но это не значит что нужно каждый компонент делать руками.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.05.2012, 13:59   #8
Lapochka
Пользователь
 
Регистрация: 27.05.2010
Сообщений: 24
По умолчанию

Этот компонент я нашла в 10-й студии.
Lapochka вне форума Ответить с цитированием
Старый 13.05.2012, 14:51   #9
Гаврилов
Пользователь
 
Регистрация: 11.05.2012
Сообщений: 85
По умолчанию

Странно в ветви, посвящённой C#, увидеть дифирамбы по поводу стиля, присущего поклонникам Delphi.
Давайте лучше не будем спорить о вкусах. Как говорят, о них не спорят.
В конце концов, привязанность программиста к тому или иному средству разработки и языку - это его стиль жизни. Более старые программисты (по возрасту) обычно привержены С и его последующим ветвям, потому что при них он появился и сразу перекрыл своими возможностями все другие языки (за исключением DEC-овского фортрана, входящего в комплект VAX\VMS, в котором уже было всё то, что потом появилось в C). Delphi, построенном вокруг паскаля, тогда ещё не было, а были в основном старый добрый фортран и старый добрый алгол, на основе которого и создали в учебных целях паскаль, уже потом бегом догнавший C с классами. А начавшие программировать в 1990-х годах больше привержены Delphi, о котором, например, в Америке, даже мало кто слышал. Я прекрасно помню, как его несколько лет назойливо пиарили и буквально втюривали в странах СНГ - на новом рынке - в начале 90-х и никто не хотел на него подсаживаться, но всё-таки многих начинающих подсадили (на выставках и конференциях дистрибутивы просто дарили, да и так коробка недорого стоила в начале - в условиях дефицита трудно было удержаться).
А что касается того предположения, что я и стандартные контролы "сам себе строю", то нет, я ими вообще не пользуюсь в чистом виде (только в простейших программах), мне недостаточно их функциональности. Я сделал себе библиотечку и пользуюсь ею, лишь время от времени дополняя новыми возможностями. И не я один так делаю, а очень многие программеры, которым надо работать быстро, а не тратить время на поиски в сетях подходящих компонентов, свидетелями чего на примере Лапочки мы только что были.
Гаврилов вне форума Ответить с цитированием
Старый 13.05.2012, 17:21   #10
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

Цитата:
что я и стандартные контролы "сам себе строю", то нет
чем вам DateTimePicker не стандартный? Вопрос был в том зачем изобретать то что уже есть прямо из коробки и по функционалу вполне устраивает?
И никто здесь дифирамбы Delphi не пел... мне вообще не понятно к чему Вы его приплели, и начнем с того, посмотрите кто создал с# (
Цитата:
В 2000 году Андерс Хейлсберг получил награду популярного журнала Dr. Dobb's Journal за создание Turbo Pascal, Delphi и C#
Поэтому странно, что вы ругаете Delphi, но полюбили c#=)
Цитата:
Я сделал себе библиотечку и пользуюсь ею, лишь время от времени дополняя новыми возможностями.
Я вот не могу себе позволить такую роскошь... И про библиотечку как с лицензией у Вас? как мне на работе использовать ее в разных коммерческих проектах? Если я создавал ее в рабочее время то ее код принадлежит уже не мне... Т.е. я должен создать эту библиотеку контролов в не рабочее время... а мне простите делать больше нечего=)
Reskov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TDBEdit связывание его с таблицей и календарем Elka89 Помощь студентам 13 31.03.2013 22:28
ВПР с календарем не дружит. staniiislav Microsoft Office Excel 18 30.12.2010 09:13
БД связать с календарем igor1306 Помощь студентам 9 06.02.2010 15:51
Выбор дат одним календарем на форме ruavia3 Microsoft Office Excel 6 20.06.2009 16:22
при введении любого номера года нашей эры, программа выводит его название за старым японским календарем mobi_vic Общие вопросы C/C++ 1 06.06.2007 12:33