У меня есть приложение, в котором может быть несколько длинных (минут) задач, выполняющихся одновременно в фоновом режиме (т. Е. Одна и та же задача для разных учетных записей, причем некоторые учетные записи занимают больше времени, чем другие). Я хотел бы показать индикатор выполнения и текст состояния для каждой задачи параллельно. Я предположил, что могу показать это в другом окне, если таких учетных записей было много, но на данный момент сценарий состоит только из 2-4 учетных записей, поэтому я хотел бы показать индикаторы выполнения в StatusStrip в нижней части основного форма. Я думаю, что StatusStrip должен вырасти, и я добавлю ToolStripProgressBar и ToolStripStatusLabel один над другим динамически, исходя из количества обрабатываемых учетных записей в любой момент времени. Это возможно? Я думал об использовании TableLayoutPanel внутри StatusStrip, но дизайнер Visual Studio допускает добавление в StatusStrip очень небольшого количества компонентов. Есть ли проблема со мной, добавляя эту программу?Несколько контрольных басов в StatusStrip
1
A
ответ
1
Возможно, это не интеллектуальный дизайн пользовательского интерфейса, но только для вашей информации вы можете добавить любой элемент управления, используя ToolStripControlHost
. Вот простой пример, который позволяет добавить несколько StatusBar
управления в одном изделии из StatusStrip
с помощью кода:
ToolStripControlHost host;
FlowLayoutPanel panel;
private void button1_Click(object sender, EventArgs e)
{
if (panel == null)
{
panel = new FlowLayoutPanel();
panel.FlowDirection = FlowDirection.TopDown;
panel.WrapContents = false;
panel.AutoSize = true;
panel.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
}
if (host == null)
{
host = new ToolStripControlHost(panel);
this.statusStrip1.Items.Add(host);
}
panel.Controls.Add(new ProgressBar() { /* Value = new Random().Next(0, 100) */ });
}
Примечание: Вы также можете расширить ToolStripControlHost
оказывать поддержку во время разработки, чтобы сделайте это, посмотрите на How to: Wrap a Windows Forms Control with ToolStripControlHost.
@RezaAghaei, почему вы удалили свой ответ, я надеялся попробовать его скоро. – Jimmy
Потому что я не получил никакого ответа после того, как я спросил * Разве это не то, что вы имеете в виду? * Но если вас интересует Я верну его снова. –
Извините, я хотел попробовать, прежде чем комментировать ответ. Спасибо за восстановление. Это действительно то, что я имел в виду. – Jimmy