У меня есть TabControl, который начинается с трех вкладок в нем. На первой вкладке есть NumericUpDown (spinner), который отображает количество вкладок и позволяет пользователю добавить до 10 дополнительных вкладок. Когда они добавляют более 5 или 6, он выходит за пределы ширины формы, а остальные вкладки доступны с помощью пары стрелок влево/вправо вверху. Пройдя весь путь вправо, а затем используя счетчик, чтобы вернуться назад к 0 (удаление всех дополнительных вкладок и выход из трех стартов), он удаляет все вкладки с верхней части панели и только путем установки вертушки на 1 он обновляет и отображает все 4 (3 от начала плюс 1 от счетчика). Я попробовал несколько commbinations из Application.DoEvents()
this.Refresh()
this.Invalidate()
this.Update()
но ничего не похоже на работу. может ли кто-нибудь предложить причину, почему он не обновляется/обновляется?tabcontrol not refreshing
public partial class Form1 : Form
{
TabPage[] tabs;
public Form1()
{
InitializeComponent();
tabs = new TabPage[tabControl1.Controls.Count];
tabs[0] = tabPage1;
}
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
int numTabs = tabControl1.Controls.Count;
decimal spinnerValue = numericUpDown1.Value;
if (numTabs < spinnerValue) //add a tab
{
TabPage[] newTabs = new TabPage[(int)spinnerValue];
for (int i = 0; i < numTabs; i++)
{
newTabs[i] = tabs[i];
}
TabPage tab = new TabPage("Tab " + numTabs);
newTabs[(int)spinnerValue-1] = tab;
tabControl1.Controls.Add(tab);
tabs = newTabs;
}
else //remove a tab
{
TabPage[] newTabs = new TabPage[(int)spinnerValue];
for (int i = 0; i < spinnerValue; i++)
{
newTabs[i] = tabs[i];
}
tabControl1.Controls.Remove(tabs[(int)spinnerValue]);
tabs = newTabs;
}
}
}
Как выглядит ваш код ..? похоже, что у вас есть 2 вопроса, один из которых - проблема SelectedIndex и другие DoEvents() не используют это. возможно, вы можете посмотреть BeginInvoke if (tabControl1.SelectedIndex == 1) { this.BeginInvoke (новое действие (() => tabControl1.SelectTab (0))); – MethodMan
Почему возникла проблема selectindex? – user1584120
Я принимаю удар в темноте без какого-либо кода, чтобы посмотреть, как вы поживаете ... трудно кому-либо дать конкретный ответ. Я бы предложил разместить код – MethodMan