Как убрать отступ для иконки в stripmenu?
Напротив каждого элемента в stripmenu есть место для иконки. У меня не будет иконок, как сместить текст, чтобы не было этого отступа?
Ответы (1 шт):
Автор решения: Алексей Обухов
→ Ссылка
данная опция недоступна из конструктора, но можно выставить ее программно:
private void Form1_Load(object sender, EventArgs e)
{
HideImageMargin(this.menuStrip1.Items.OfType<ToolStripMenuItem>().ToList());
}
private void HideImageMargin(List<ToolStripMenuItem> items)
{
items.ForEach(item =>
{
var dropdown = (ToolStripDropDownMenu)item.DropDown;
if (dropdown != null)
{
dropdown.ShowImageMargin = false;
HideImageMargin(item.DropDownItems.OfType<ToolStripMenuItem>().ToList());
}
});
}
для красоты, HideImageMargin можно сделать методом расширения и убрать в другой файл:
public static class MenuHelper
{
public static void HideImageMargin(this MenuStrip menuStrip)
{
HideImageMarginInt(menuStrip.Items.OfType<ToolStripMenuItem>().ToList());
}
private static void HideImageMarginInt(List<ToolStripMenuItem> items)
{
items.ForEach(item =>
{
var dropdown = (ToolStripDropDownMenu)item.DropDown;
if (dropdown != null)
{
dropdown.ShowImageMargin = false;
HideImageMarginInt(item.DropDownItems.OfType<ToolStripMenuItem>().ToList());
}
});
}
}
после чего дополнительный код в форме сокращается до:
private void Form1_Load(object sender, EventArgs e)
{
this.menuStrip1.HideImageMargin();
}