事件不正确挂钩

不知道如果我将能够制定我的问题很清楚,但让我试试:

所以我写了一小段代码,这将给用户的选择来选择自己的Office Communicator所期望的状态时,他的计算机被锁定(默认情况下它会自动继续“离开”状态)。所以在这里它是Windows表至极基本上是一个组合框和一个按钮.The组合有四个选项,“离开”,“忙碌”,不要打扰“和”分别Online“的所有似乎罚款和程序编译ok.The菜单出现时,选择状态你想,按下按钮,然后锁定您的计算机 - 到目前为止一切顺利perfect.Your状态作为选择。而现在来Problem.You解锁你的电脑,并尝试选择不同的状态,同样的动作,但是当你锁定PC它仍然显示先前选定状态这里是Button_Click方法

public void Btn_Click(Object sender, EventArgs e) { // When the button is clicked, // change the button text, and disable it. if (Comb.Text == "Away") { MessageBox.Show("Saved ! \nYour Status will be 'Away' "); Method2(); } else if (Comb.Text == "Busy") { MessageBox.Show("Saved ! \nYour Status will be 'Busy' "); Method1(); } else if (Comb.Text == "Do Not Disturb") { MessageBox.Show("Saved ! \nYour Status will be 'Do Not Disturb' "); Method3(); } else { MessageBox.Show("Saved ! \nYour Status will be 'Online' "); Method4(); } But.Enabled = true; // Display the greeting label text. }

因此,这4种方法(方法1(),2 ...等)是一个改变取决于组合框的文本的状态下拉菜单(您选择的状态),我已分别测试了所有的方法,相互借鉴,他们工作美丽thereforfe我排除与他们的问题,是它的一些逻辑上的错误?

--------------解决方案-------------

尼古拉,给SharpDevelop的调试器一试。 在你的代码的保证金点击一次,旁边的行if (Comb.Text == "Away")然后将鼠标悬停在变量名,看看他们都设置为每次运行时。 您可以使用“步过”,“走进”与“走出”功能,“不看内部执行加亮的方法”,“调试方法的内部”或“运行电流的方法来结束,然后分别示出一个新的水平上“。

如果你这样做,你就会明白为什么你得到一个错误,它会更容易确定错误的来源。 (例如,如果一个变量被设置为一个意想不到的价值,你就会知道要弄清楚的时候,改变)。

static void SystemEvents_SessionSwitch1(object sender, SessionSwitchEventArgs e)
{
if (e.Reason == SessionSwitchReason.SessionLock)
{
System.Threading.Thread.Sleep(500);
CommunicatorAPI.MessengerClass comm = new CommunicatorAPI.MessengerClass();

if (comm.MyStatus==MISTATUS.MISTATUS_AWAY)
{
SetMyPresence1 ();
} else if (e.Reason == SessionSwitchReason.SessionUnlock)
{
ChangeStatus1 ();
}
}
}

分类:C# 时间:2015-03-16 人气:208
本文关键词: .NET,C#,事件的WinForms
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.412 (s). 9 q(s)