この方法ValueChanged
でイベントを処理できます。DateTimePicker
private void Form1_Load(object sender, EventArgs e)
{
var item = new ToolStripControlHost(new DateTimePicker());
((DateTimePicker)item.Control).ValueChanged += ToolStripDatePicker1_ValueChanged;
item.Name = "ToolStripDatePicker1";
toolStrip1.Items.Add(item);
}
private void ToolStripDatePicker1_ValueChanged(object sender, EventArgs e)
{
var datePicker = (DateTimePicker)sender;
MessageBox.Show(datePicker.Value.ToString());
}
DateTimePicker
また、別のオプションとして、次の方法で別のボタン クリック イベント ハンドラーでコントロールを見つけることができます。
private void toolStripButton1_Click(object sender, EventArgs e)
{
var item = ((ToolStripControlHost)this.toolStrip1.Items["ToolStripDatePicker1"]);
var datePicker = (DateTimePicker)item.Control;
MessageBox.Show(datePicker.Value.ToString());
}
注:より良い解決策は、から派生することToolStripControlHost
です。このようにして、必要なプロパティとイベントを公開できます。たとえば、埋め込みコントロールのValue
プロパティとイベントを公開できます。ValueChanged
DateTimePicker
MSDN の例「方法: ToolStripControlHost を使用して Windows フォーム コントロールをラップする」では、ホストするカスタム コントロールを作成する方法を示していますToolStrip
。ToolStripDateTimePicker
この例を使用して、カスタムコントロールを簡単に作成できます。