Как получить дескриптор формы с помощью get{set?

StackOverflow https://stackoverflow.com/questions/765225

  •  12-09-2019
  •  | 
  •  

Вопрос

Я хотел бы получить дескриптор моей формы из другого класса (вероятно, потока).Я хочу сделать это так, как я вызываю

    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();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top