C# 事件未正确连接
不确定我是否能够很清楚地表述我的问题,但让我试试: 所以我写了一小段代码,当他的电脑被锁定时,用户可以选择所需的Office Communicator状态(默认情况下,它会自动进入状态“远离”)。所以这里是Windows窗体,它基本上是一个组合框和一个按钮。组合框有四个选项“远离”、“忙碌”、“请勿打扰”和在线 的“分别。一切正常,程序编译正常。菜单出现,您选择想要的状态,按下按钮,然后锁定您的电脑-到目前为止一切正常。您的状态为“已选择”。现在出现问题。您解锁电脑并尝试选择不同的状态,相同的操作,但是当你锁定电脑时,它仍然显示以前选择的状态。这里是按钮点击法C# 事件未正确连接,c#,.net,winforms,events,C#,.net,Winforms,Events,不确定我是否能够很清楚地表述我的问题,但让我试试: 所以我写了一小段代码,当他的电脑被锁定时,用户可以选择所需的Office Communicator状态(默认情况下,它会自动进入状态“远离”)。所以这里是Windows窗体,它基本上是一个组合框和一个按钮。组合框有四个选项“远离”、“忙碌”、“请勿打扰”和在线 的“分别。一切正常,程序编译正常。菜单出现,您选择想要的状态,按下按钮,然后锁定您的电脑-到目前为止一切正常。您的状态为“已选择”。现在出现问题。您解锁电脑并尝试选择不同的状态,相同的操
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种方法(Method1()、2…等)是根据组合框下拉菜单中的文本(您选择的状态)来更改状态的方法。我已经分别测试了所有方法,它们工作得很好。因此,我排除了它们的一个问题,这是一些逻辑错误吗?尼古拉,试一试。在代码的边距中,单击行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 ();
}
}
}
如果你这样做,你就会明白为什么你会得到一个错误,这将更容易确定错误来自哪里。(例如,如果变量设置为意外值,您将知道该值何时更改)。我假设您将使用visual express或visual studio的一个版本。您是否尝试过在Click_事件上设置断点并调试程序?对于不同的第一个选择,是相同的场景吗?失败的不是你发布的代码。它自己基本上什么都不做。因此,如果你调试并发现代码实际上破坏了这篇文章,我相信在你可以反向拼写“debug”之前,你会得到一个答案:)符文FS,你的第一个选择是什么并不重要,它总是相同的场景。请检查是否有其他代码更改了你的组合框。通常,这些问题的解决方案是外部的。我们可以看到其中一个编号方法的代码吗?这可能有助于了解为什么不重写已经存在的值。SetMyPresence1()中会发生什么情况?这大概就是状态应该改变的地方…嗨,Mark,SetMyPresence基本上就是状态改变的地方。这很简单,我之前已经测试过很多次了,所以我不希望问题来自这一行