эта линия?
Как отключить строку под панелью инструментов в winform С#?
Ответ 1
Это ошибка в "системном" рендерере, подробности в этот отчет об ошибках.
Ответ Microsoft дает очень простой способ:
1) Создайте подкласс ToolStripSystemRenderer, переопределив OnRenderToolStripBorder и сделав его no-op:
public class MySR : ToolStripSystemRenderer
{
public MySR() { }
protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
{
//base.OnRenderToolStripBorder(e);
}
}
2) Используйте этот рендерер для своей панели инструментов:
toolStrip3.Renderer = new MySR();
Ответ 2
Возможно, вы захотите добавить проверку типа, чтобы избежать отсутствия границы на ToolStripDropDownMenu/и т.д. (поскольку он унаследован от ToolStrip, он автоматически запускает такое же использование пользовательского средства визуализации):
protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
{
if (e.ToolStrip.GetType() == typeof(ToolStrip))
{
// skip render border
}
else
{
// do render border
base.OnRenderToolStripBorder(e);
}
}
Пропущенная граница ToolStripDropDownMenu не очень заметна при использовании ToolStripSystemRenderer, но становится реальным бельмом на глазах с помощью ToolStripProfessionalRenderer.
Кроме того, установка System.Windows.Forms.ToolStripManager.Renderer = new MySR(); может быть полезна, если вы хотите, чтобы все экземпляры ToolStrip по умолчанию использовали MySR по умолчанию.
