我使用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();
}
答案 0 :(得分:0)
如果是WPF,那么试试这个
groupBox1.Visibility = Visibility.Hidden;
答案 1 :(得分:0)
使用不透明度属性:
groupBox1.Opacity=0;
当你想要展示它时:
groupBox1.Opacity=1