Атрибут для waitcursor - PullRequest
       33

Атрибут для waitcursor

0 голосов
/ 26 мая 2011

Я создаю приложение, которое будет иметь много форм, и иногда будет время ожидания для нескольких ситуаций. Это время ожидания может обычно составлять несколько секунд, но в соответствии с рекомендациями по удобству использования очень важно держать пользователя в курсе происходящего, и, таким образом, когда ему приходится ждать секунду или больше, это делает клиента счастливым, узнав о приложении. работает над действием клиент / пользователь.

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

this.Cursor = Cursors.WaitCursor;

... сделать что-нибудь ...

this.Cursor = Cursors.DefaultCursor;

во всех моих методах. Это также против лучшей практики писать что-то более одного раза.

Так что ... если кто-то может помочь мне с атрибутом, который устанавливает this.Cursor = Cursors.WaitCursor; когда метод вызывается и когда метод завершается, атрибут делает это.Cursor = Cursors.DefaultCursor; Я был бы очень счастлив!

Ответы [ 2 ]

2 голосов
/ 27 мая 2011

Взгляните на https://github.com/ninject/ninject.extensions.interception Вы можете определить атрибут и перехватчик, которые изменяют курсор до и после вызова метода.

1 голос
/ 26 мая 2011

Возможно, вы могли бы использовать шаблон типа using для своего использования WaitCursor?

Попробуйте http://www.codeproject.com/KB/cpp/WaitCursor.aspx и http://www.codeproject.com/KB/cs/waitcursor.aspx?q=using+waitcursor

using (new StWaitCursor())
{ 
    // .. do some work while WaitCursor is enabled .. 
}

Это действительно работает только тогда, когда у вас есть незаметные и не вложенные процедуры. Первый пример поддерживает разматывание стека, поэтому вы можете вложить блоки использования.

Надеюсь, это поможет!

...