Доступ к переменной внутри вкладки формы
Здесь я столкнулся с проблемой, я динамически добавляю форму на вкладку. Я должен получить статическую переменную из этой формы.
Я использовал код, но я не могу получить точное значение, которое мне нужно.
private void timer2_Tick(object sender, EventArgs e)
{
foreach (TabPage page in tabControl1.TabPages)
{
Control control = page.Controls[0];
if(!hyber.Form1.receiverflag)//bug line
{
tabControl1.TabPages.Remove(page);
}
}
}
В приведенном выше окне просмотра рис.
page.controls[0] ->[hyber.form1] -> флажок приемника
как получить значение этой переменной.
Заранее спасибо.
1 ответ
Вы не знаете, что такое ошибка, или не можете сказать, какое именно значение вам нужно.
если переменная public static bool
он принадлежит классу, а не экземпляру, будучи статичным, поэтому, когда вы пишете:
hyber.Form1.receiverflag
Вы берете значение переменной независимо от конкретного экземпляра Form1, с которым имеете дело, не имеет значения, если вы создали один экземпляр и добавили его в TabPage, эта переменная всегда существует, даже если вы не создаете ни одного экземпляра.
если вы получаете неправильные / неожиданные результаты, возможно, в конечном итоге другой поток или другой метод изменили значение этого статического поля, и это отражается повсюду в вашем приложении.
Изменить: если бы он не был статичным, вы могли бы, вероятно, получить то, что вы просите, таким образом:
var yourForm1 = (page.Controls[0] as hyber.Form1);
if( yourForm1 != null && !yourForm1.receiverflag)
{
....