пятница, 12 декабря 2008 г.

Tips & tricks WinForms .NET

"Отзывчивое окно"

У class System.Windows.Forms.Form, есть свойство Opacity, достаточно установить его значение в 99%, и мы получаем отзывычивое окошко если на заднем фоне имеется, какое то окно с активной перерисовкой. Нет тормозов при перемещении окна. Думаю это аппаратный альфебленд, на видеокарте.(такой трюк провернуть через WIN 32 API, не удалось появлялись глюки с выпаданием пикселей).

"WinFormSingleton" NoneSafeThread

Как сделать из Form подобиее синглтона ? смотрим ниже код

  1. #region WindowFromsSingleton   
  2.    
  3. private FormSingleton m_oFormSingleton = null;   
  4.    
  5. private void ShowFormSingleton(object sender, EventArgs e)   
  6. {   
  7.   if (null == m_oFormSingleton)   
  8.   {   
  9.     m_oFormSingleton = new FormSingleton();   
  10.     m_oFormSingleton.Show();   
  11.    
  12.     m_oFormXmlTrackSettings.Closed += new EventHandler(FormSingleton_Closed);   
  13.   }   
  14. }   
  15. private void FormSingleton_Closed(object sender, EventArgs e)   
  16. {   
  17.   m_oFormSingleton.Closed -= new EventHandler(FormSingleton_Closed);   
  18.   m_oFormSingleton = null;   
  19.  
  20.   
  21. #endregion  

Комментариев нет: