Событие не подключается правильно - PullRequest
0 голосов
/ 14 октября 2010

Не уверен, смогу ли я сформулировать свой вопрос достаточно ясно, но позвольте мне попробовать:

Итак, я написал небольшой фрагмент кода, который даст пользователю возможность выбрать желаемый статус дляего офисный коммуникатор, когда его компьютер заблокирован (по умолчанию он автоматически переходит в состояние «прочь»). Так что здесь это форма Windows, которая в основном представляет собой поле со списком и кнопку.Не беспокоить "и" Онлайн "соответственно. Все выглядит нормально и программа компилируется нормально. Появляется меню, вы выбираете желаемый статус, нажимаете кнопку и затем блокируете свой компьютер - пока все идет отлично. Ваш статус выбран. И теперь наступает проблема. Вы разблокируете свой ПК и пытаетесь выбрать другой статус, те же действия, но когда вы блокируете ПК, он все равно показывает ранее выбранный статус, здесь используется метод Button_Click4 метода (Method1 (), 2 ... и т. д.) позволяют изменять статус в зависимости от текста в выпадающем спискеменю (выбранный вами статус) Я проверил все методы отдельно друг от друга, и они прекрасно работают, поэтому я исключаю проблемы с ними, это логическая ошибка?

Ответы [ 2 ]

0 голосов
/ 27 октября 2010

Николай, попробуйте Отладчик SharpDevelop .На полях вашего кода щелкните один раз рядом со строкой if (Comb.Text == "Away"), а затем наведите указатель мыши на имена переменных, чтобы увидеть, какие они установлены при каждом запуске.Вы можете использовать функции «Step over», «Step into» и «Step out», чтобы «выполнить выделенный метод, не глядя на внутренние компоненты», «отладить внутренние компоненты метода» или «запустить текущий метод до конца, а затемпокажите следующий уровень вверх "соответственно.

Если вы сделаете это, вы поймете почему вы получаете ошибку, и будет НАМНОГО легче определить, откуда исходит ошибка,(Например, если для переменной задано неожиданное значение, вы узнаете, когда это изменится).

0 голосов
/ 14 октября 2010
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 ();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...