使用一个月的日历填充2个文本框
本文关键字:日历 填充 2个 文本 一个 | 更新日期: 2023-09-27 18:18:07
我想知道您是否可以使用一个月的日历来填充windows窗体上的两个文本框。一个表示开始日期,一个表示结束日期。我可以弄清楚如何填充两个文本框与点击日历,但现在如何填充开始日期与点击1,清除日历,然后填充结束日期与第二个日历点击。
这是可能的吗?如果是的话,我该如何在c# windows形式中实现这一点?
你可以像下面这样处理"Date Selected"事件:
public Form1()
{
InitializeComponent();
mthCalendarMaster.DateSelected += mthCalendarMaster_DateSelected;
}
private void mthCalendarMaster_DateSelected(object sender, DateRangeEventArgs e)
{
if (string.IsNullOrWhiteSpace(textBox1.Text))
textBox1.Text = e.Start.ToShortDateString();
else
textBox2.Text = e.Start.ToShortDateString();
}
注意:在表单的构造函数中定义事件处理程序不是一个好主意。
这将使两个文本框的当前起始日期和结束日期都通过绑定源绑定:
BindingSource source = new BindingSource();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
SetSource();
textBox1.DataBindings.Add("Text", source, "Start", true);
textBox2.DataBindings.Add("Text", source, "End", true);
}
private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
{
SetSource();
}
private void SetSource()
{
source.DataSource = monthCalendar1.GetDisplayRange(true);
}
}
我们在datechange处理程序中调用SetSource()来保持文本框与日历迭代(上个月,下个月…)同步。