Я пишу приложение, которое должно взаимодействовать с устройством Windows Mobile 6.5. Когда устройство подключено, возвращается обратный вызов activeHandler.
Проблема в том, что выполнение кода останавливается на
lblStatus.Text = "someString";
линия. Не генерируется никаких исключений, выполнение кода прекращается, и графический интерфейс получает фокус. Я попробовал то же самое с использованием метода invoke свойства label, который дал тот же результат. Если в этом методе вызывается код не в форме, все работает нормально.
public partial class MyClass: Form
{
public MyClass()
{
ActiveHandler active = new ActiveHandler(ActiveSync_Active);
sync.addHandler(active)
}
private void ActiveSync_Active() {
lblStatus.Text = "someString";
//Some code
}
}
Edit:
Вызов вызова, который не работал
private delegate void StatusLabelChange(string str);
private void ChangeStatusLabelText(string str)
{
lblStatus.Text = str;
}
private void ActiveSync_Active() {
lblStatus.Invoke(new StatusLabelChange(ChangeStatusLabelText), new object[] {"asd"});
}