Я бы так признателен, если бы вы могли сказать мне, как скрыть вкладку страницы формы из другой формы.
Похоже, вам нужно средство передачи информации от одного Form
к другому. Часто это может быть достигнуто с помощью конструктора Form
, так что при создании экземпляра присутствует соответствующая информация о том, как отображать определенные элементы управления. Если по какой-то причине использование подхода конструктора не является идеальным, вы можете иметь общий механизм для хранения и сбора соответствующих данных. Обычно переопределение OnLoad
является хорошим выбором для совершения вызова для сбора указанных данных.
После того, как у вас есть необходимые данные, вы можете использовать его для отображения или скрытия закладки. Обычно я предлагаю data binding и используя для WinForms.
Например, у вас может быть модель, которая представляет различные детали о пользователе, который вошел в систему, а затем привязывается к различным свойствам управления.
Как я уже говорил, вы хотели бы, чтобы связать видимость с его конструктором Form1
. Поэтому добавьте в конструктор:
private bool _hideTwoOutOfThreeTabs;
public Form1(bool hideTwoOutOfThreeTabs = false)
{
_hideTwoOutOfThreeTabs = hideTwoOutOfThreeTabs;
}
перекроет описанное OnLoad
так:
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (_hideTwoOutOfThreeTabs)
{
foreach (var tabPage in tabControl1.TabPages.Cast<TabPage>())
{
// TODO: Some logical test to ensure this is the desired tab control to hide
// if (tabPage)
{
tabPage.Visible = false;
}
}
}
}
Наконец ваш метод будет в конечном итоге выглядит так:
private void button1_Click(object sender, EventArgs e)
{
var textOne = textBox1.Text,
textTwo = textBox2.Text;
if (textOne == "x" && textTwo == "123")
{
Hide();
using(var fr1 = new Form1())
{
fr1.ShowDialog();
}
}
else if (textOne == "z" && textTwo == "t")
{
Hide();
using(var fr1 = new Form1(true))
{
fr1.ShowDialog();
}
}
}
У вас также есть главный -form, который начинает регистрационную форму или является первой формой входа, например основная форма? – icbytes
Как бы вы скрывали tapgages в той же форме? – TaW
моя форма для входа в систему - это форма запуска и когда пользователь с именем пользователя z и паролем t вошел в систему. Я хочу, чтобы он не показывал tapepage2 и tabpage3 на form1 (fr1) –