Как получить дескриптор формы с помощью get{set?
Вопрос
Я хотел бы получить дескриптор моей формы из другого класса (вероятно, потока).Я хочу сделать это так, как я вызываю
public int GetHandle
{
get
{
if (this.InvokeRequired)
{
this.Invoke((MethodInvoker)delegate
{
return this.Handle.ToInt32();
});
}
}
}
Я получаю сообщение об ошибке: «Поскольку System.Windows.Forms.MethodInvoker возвращает значение void, за ключевым словом return не должно следовать выражение объекта»
Если я не использую вызов, я получаю исключение, что я не вызываю метод из текущего потока.
Решение
Вы можете вызвать любой делегат, а не только MethodInvoker.Попробуй это:
public int GetHandle
{
get
{
if (this.InvokeRequired)
{
return (int)this.Invoke((GetHandleDelegate)delegate
{
return this.Handle.ToInt32();
});
}
return this.Handle.ToInt32();
}
}
private delegate int GetHandleDelegate();
Не связан с StackOverflow