powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / TextBox изменить тип свойства
16 сообщений из 16, страница 1 из 1
TextBox изменить тип свойства
    #38606968
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Создаю свой компонент. Подскажите пожалуйста как можно изменить тип стандартного свойства Text string на datetime, компонента TextBox.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class Component1 : TextBox 
    {
        public Component1()
        {
            InitializeComponent();
        }

        public Component1(IContainer container)
        {
            container.Add(this);

            InitializeComponent();
        }

        private override DateTime Text;

        public override DateTime Text 
        {
            get
            {
                return base.Text;
            }
            set
            {
                base.Text = value;
            }
        }
       

    }
}
...
Рейтинг: 0 / 0
TextBox изменить тип свойства
    #38606979
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не выйдет.

Можно добавить свойство DateTimeValue
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public DateTime DateTimeValue
{
     set 
     {
          _DateTimeValue = value;
          this.Text = (_DateTimeValue.ToString(_displayFormat));
     }
     get
     {
          return _DateTimeValue;
     }
}
...
Рейтинг: 0 / 0
TextBox изменить тип свойства
    #38607083
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А почему нельзя изменить тип, это свойства?
...
Рейтинг: 0 / 0
TextBox изменить тип свойства
    #38607090
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что у базового класса он string, и ничего ты с этим не поделаешь, только обертку вокруг него сделать можно.
...
Рейтинг: 0 / 0
TextBox изменить тип свойства
    #38607130
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А обёртка, это как? Если можно в общих чертах.
...
Рейтинг: 0 / 0
TextBox изменить тип свойства
    #38607137
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это как я выше написал в примере.

Может лучше DateTimePicker использовать?
...
Рейтинг: 0 / 0
TextBox изменить тип свойства
    #38607151
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том что вместо него велосипед и собираю.

Хочу сделать компонент который бы перечислял года, при помощи кнопочек (верх, вниз). А когда в базе данных нет по этому полю, то выводилось "нет данных". А в базу, этот компонент возвращал дату.
...
Рейтинг: 0 / 0
TextBox изменить тип свойства
    #38607164
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так пару кнопок к DateTimePicker присобачить можно со стрелочками. А как вывести "Нет данных" в него - недавно обсуждалось вроде.

Ты ж не собираешься делать компонент, который будет напрямую обращаться к базе - это должно быть в обработчиках.
...
Рейтинг: 0 / 0
TextBox изменить тип свойства
    #38607176
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно и пикер использовать, но вот только если эту стрелочку в текстовом поле убрать.
...
Рейтинг: 0 / 0
TextBox изменить тип свойства
    #38607177
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы знаете как её убрать?
...
Рейтинг: 0 / 0
TextBox изменить тип свойства
    #38608930
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtoПодскажите пожалуйста как можно изменить тип стандартного свойства Text string на datetime, компонента TextBox.
new

NechtoМожно и пикер использовать, но вот только если эту стрелочку в текстовом поле убрать.
ShowUpDown
...
Рейтинг: 0 / 0
TextBox изменить тип свойства
    #38609012
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот что навоял:

Этом классе создаётся DateTimePicker, и при помощи onPaint оставляет только число (год)
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;

namespace ModuleArmPipes.Controls.DatePicker
{
    public partial class ControlPicker : DateTimePicker
    {
        public ControlPicker() : base()
        {
            this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true);
            InitializeComponent();
        }

        protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
        {
            base.OnPaint(e);
            Graphics g = this.CreateGraphics();
            g.DrawString(this.Text, this.Font, Brushes.Black, 0, 4);
            base.OnPaint(e);
        }

        private void InitializeComponent()
        {
            this.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
            this.CustomFormat = "yyyy";
            this.Size = new System.Drawing.Size(75, 20); ;
            this.ResumeLayout(false);
        }
    }
}



Здесь я создал UserControl, в котором объявил ControlPicker и numericUpDown1 для перечисления
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ModuleArmPipes.Controls.DatePicker
{
    public partial class DemoDatePicker : UserControl
    {
        public DemoDatePicker()
        {
            InitializeComponent();
        }     

        private void numericUpDown1_ValueChanged(object sender, EventArgs e)
        {
            if (numericUpDown1.Value == 1)
            {
                numericUpDown1.Value = numericUpDown1.Value + Convert.ToInt64(controlPicker1.Value.ToString("yyyy"));
            }
            controlPicker1.Value = DateTime.ParseExact("01.01." + numericUpDown1.Value.ToString(), "dd.M.yyyy", null);
        }

        private void controlPicker1_ValueChanged(object sender, EventArgs e)
        {
            numericUpDown1.Value = Convert.ToInt64(controlPicker1.Value.ToString("yyyy"));
        }
    }
}



Далее я это DemoDatePicker, кидаю на форму, для ввода данных. Здесь у меня возникла проблема с this.DtpLastKapRem. DataBindings .Add, не синхронизируются данные с DemoDatePicker. Может нужно как то это описывать в UserControl? Или всё гораздо проще?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
// 
            // DtpLastKapRem
            //
            this.DtpLastKapRem.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.BsArmPipe, "RebuildingLastDate", true));
            this.DtpLastKapRem.Location = new System.Drawing.Point(179, 120);
            this.DtpLastKapRem.Name = "DtpLastKapRem";
            this.DtpLastKapRem.Size = new System.Drawing.Size(111, 21);
            this.DtpLastKapRem.TabIndex = 128;
            // 
...
Рейтинг: 0 / 0
TextBox изменить тип свойства
    #38609042
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так тебе юзеру только год показывать или что?
...
Рейтинг: 0 / 0
TextBox изменить тип свойства
    #38609231
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да только год. А в базу чтобы дата полостью падала.
Ну и если нет данных то выводило "НЕТ ДАННЫХ", что в принципе уже обсуждалось, и как реализовать это я знаю.
...
Рейтинг: 0 / 0
TextBox изменить тип свойства
    #38612790
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Победил.
...
Рейтинг: 0 / 0
TextBox изменить тип свойства
    #38612795
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pationNechtoПодскажите пожалуйста как можно изменить тип стандартного свойства Text string на datetime, компонента TextBox.
new
NechtoМожно и пикер использовать, но вот только если эту стрелочку в текстовом поле убрать.
ShowUpDown
Это всё не по теме
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / TextBox изменить тип свойства
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]