这里我遇到问题,我正在动态添加表单到标签页。 我必须从该表单中获取一个静态变量。
我使用的是代码,但我无法获得所需的确切值。
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);
}
}
}
在上面的pic观察窗口中
page.controls [0] - > [hyber.form1] - > receiverflag
如何获得该变量值。
提前致谢。
答案 0 :(得分:1)
你也不清楚bug行或说不能得到你需要的确切值。
如果变量是public static bool
它属于类而不属于实例,则为静态,所以当你写:
hyber.Form1.receiverflag
无论您正在处理的Form1的具体实例如何,您都将获取变量的值,如果您创建了一个实例并添加到TabPage,则该变量始终存在,即使您不创建任何实例,该变量也始终存在
如果您出错/意外结果可能最终导致另一个线程或其他方法更改了该静态字段的值,这反映了应用程序中的任何位置。
编辑:如果它不是静态的,您可能会以这种方式得到您所要求的内容:
var yourForm1 = (page.Controls[0] as hyber.Form1);
if( yourForm1 != null && !yourForm1.receiverflag)
{
....