无法在事件中更改可见性或关闭表单

时间:2015-08-12 09:01:43

标签: c# winforms visibility

我使用Codeproject中的RegistryMonitor包装器类跟踪注册表项更改,这样可以正常工作。

但我希望在事件被触发时关闭我的表单或将组件(groupbox)设置为invisble。

但这不起作用,groupbox1.visible = false;this.close();之后的代码不会被执行......

以下是一些代码段:

static RegistryMonitor registryMonitor;
private void button1_Click(object sender, EventArgs e)
{

    string key = @"REGISTRYKEYTOTRACK"
    registryMonitor = new RegistryMonitor(RegistryHive.CurrentUser, key);
    registryMonitor.RegChanged += new EventHandler(OnRegChanged);
    registryMonitor.RegChangeNotifyFilter = RegChangeNotifyFilter.Value;
    registryMonitor.Start();
    groupBox1.Visible = true;
}

private void OnRegChanged(object sender, EventArgs e)
{
    MessageBox.Show("before"); //this executes
    groupBox1.Visible = false; //this doesn't work
    MessageBox.Show("after"); // this doesn't execute
    registryMonitor.Stop();
    registryMonitor.Dispose();

}

2 个答案:

答案 0 :(得分:0)

如果是WPF,那么试试这个

groupBox1.Visibility = Visibility.Hidden;

答案 1 :(得分:0)

使用不透明度属性:

groupBox1.Opacity=0;

当你想要展示它时:

groupBox1.Opacity=1