Я хочу показать ToolStripDropDown
в виде ComboBox
s выпадающее меню показано (или, например, DateTimePicker
s выпадающее меню). Так что я написал этот код в моем Form
:Show ToolStripDropDown правильно
private readonly ToolStripDropDown _toolStripDropDown = new ToolStripDropDown
{
TopLevel = false,
CanOverflow = true,
AutoClose = true,
DropShadowEnabled = true
};
public Form1()
{
InitializeComponent();
var label = new Label{Text = "Ups"};
var host = new ToolStripControlHost(label)
{
Margin = Padding.Empty,
Padding = Padding.Empty,
AutoSize = false,
Size = label.Size
};
_toolStripDropDown.Size = label.Size;
_toolStripDropDown.Items.Add(host);
Controls.Add(_toolStripDropDown);
}
private void button1_Click(object sender, EventArgs e)
{
_toolStripDropDown.Show(button1.Left, button1.Top + button1.Height);
}
Когда я нажимаю на кнопку мой ToolStripDropDown
отображается, но нет ни тени, ни переполнения, ни AutoClose. Что я делаю не так?
Label
в ToolStripControlHost
для простоты. Я использую WinForms и .NET 4.
Update:
Как вы можете увидеть выпадающий «Упс» не переполнить окно, не имеет тени (ComboBox
сек выпадающий имеет и другое) и даже когда я нажал на ComboBox
выпадающее меню «Ups» все еще видно.
Ваш вопрос несколько неясно. Можете ли вы подробнее рассказать о том, что вы имеете в виду: 'но нет тени, нет переполнения, нет аутоклиза. Что я делаю неправильно? »Обновите вопрос, если потребуется. –
Благодарим за сообщение. Я обновил свой вопрос и надеюсь, что теперь это более понятно. – Artholl