질문의 두 번째 진행 과정에서 두 가지 양식이 표시됩니다. DateTimePicker.ValueChanged
이벤트를 첫 번째 양식으로 노출 한 다음 DateTimePicker.Value
속성을 두 번째 양식으로 노출해야합니다. 예를 들어 :
class DateEventArgs : EventArgs
{
public DateTime Date {get; private set;}
public DateEventArgs(DateTime d)
: base()
{
this.Date = d;
}
}
class FirstForm : Form
{
DateTimePicker dtp = new DateTimePicker();
public event EventHandler<DateEventArgs> DateSelected;
protected virtual void OnDateSelected(DateEventArgs e)
{
EventHandler<DateEventArgs> handler = DateSelected;
if(handler != null) handler(this, e);
}
public FirstForm()
{
this.Controls.Add(dtp);
dtp.ValueChanged += new EventHandler(dtp_ValueChanged);
}
void dtp_ValueChanged(object sender, EventArgs e)
{
DateEventArgs dea = new DateEventArgs(dtp.Value.Date);
OnDateSelected(dea);
}
}
class SecondForm : Form
{
DateTimePicker dtp = new DateTimePicker();
public DateTime SelectedDate
{
set { dtp.Value = value; }
}
public SecondForm()
{
this.Controls.Add(dtp);
}
}
static class Controller
{
FirstForm f1;
SecondForm f2;
static void Go()
{
f1 = new FirstForm();
f2 = new SecondForm();
f1.DateSelected += new EventHandler<DateEventArgs>(f1_DateSelected);
f1.Show();
f2.Show();
}
static void f1_DateSelected(object sender, DateEventArgs e)
{
f2.SelectedDate = e.Date.AddMonths(6);
}
}
당신은 본 적이'DateTimePicker.Value' 속성 (http://msdn.microsoft.com/en-us/library/system.windows.forms을 도움이 될 것입니다 .datetimepicker.value.aspx)? – Dennis