Как получить доступ к значениям элемента ToolStrip, который был добавлен динамически
Поскольку только некоторые стандартные элементы (textBox и т. Д.) Могут быть добавлены к элементу управления ToolStrip во время разработки в приложении Winform, я динамически добавил элемент управления DateTimePicker следующим образом, но я не уверен, как получить доступ к значению datetime выбранного дата в контроле
var datePicker = new ToolStripControlHost(new DateTimePicker());
toolStrip1.Items.Add(datePicker);
Я пробовал следующее, которое все еще работает как выше, но не может получить доступ к выбранному значению даты добавленного dateTimePicker:
DateTimePicker myDateTimePicker = new DateTimePicker();
var datePicker = new ToolStripControlHost(myDateTimePicker);
toolStrip1.Items.Add(datePicker);
В этом руководстве по MSDN описано, как динамически добавлять элементы в ToolStrip, но не более того.
1 ответ
Вы можете справиться 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 Практическое руководство. Обертывание элемента управления Windows Forms с помощью ToolStripControlHost показывает, как создать настраиваемый элемент управления для размещения в ToolStrip
, Вы можете просто использовать пример, чтобы создать свой собственный ToolStripDateTimePicker
контроль.