у вас нет четких сведений об ошибке или что вы не можете получить точное значение, которое вам нужно.
если переменная public static bool
, то она принадлежит классу, а не экземпляру, будучи статической, поэтому, когда вы пишете:
hyber.Form1.receiverflag
вы берете значение переменной независимо от конкретного экземпляра Form1, с которым вы имеете дело, не имеет значения, если вы создали один экземпляр и добавили его в TabPage, эта переменная всегда существует, даже если вы не создаете какой-либо экземпляр .
если вы получаете неправильные / неожиданные результаты, возможно, в конечном итоге другой поток или другой метод изменили значение этого статического поля, и это отражается повсюду в вашем приложении.
Редактировать: если бы он не был статичным, вы, вероятно, могли бы получить то, что вы просите, таким образом:
var yourForm1 = (page.Controls[0] as hyber.Form1);
if( yourForm1 != null && !yourForm1.receiverflag)
{
....