0
- 12.12.2012 - 12:19
|
Суть проблемы такова: при запуске в свойстве формы есть ShowInTaskbar - false и есть WindowState - minimized. Висит себе иконка в трее и popup-меню из неё вываливается, всё работает. Теперь требуется отобразить форму, сделать там действия и обратно её скрыть (именно скрыть). Так вот, разворачиваю я её mainform.WindowState = normal, по логике свернуть обратно - присвоить опять minimized, но она именно свернётся а не скроется. А скрыть - showintaskbar, но [*****], она же итак скрыта! после переопределения св-ва showintaskbar тупо умирает процесс. почему - не могу понять, дебаггер что-то ловит но знаний не хватает понять. I need help!
| |
1
- 12.12.2012 - 14:40
|
В delphi для скрытия формы из таскбара я использовал API функцию: ShowWindow(Application.Handle, SW_HIDE); причем вызов делал из обработчика OnMinimaze для формы. Как в C# фиг его знает но я думаю что как то также ;) | |
2
- 12.12.2012 - 14:51
| http://yandex.ru/yandsearch?clid=145...B5%D0%B9&lr=35 В первой же ссылке есть код. | |
3
- 12.12.2012 - 18:32
| to spaceman - я именно так и делаю, проблема в том, что если писать код на событие onFormLoad "this.ShowInTaskbar = false", после компиляции иконка появляется в трее и тут же исчезает, но если в визуальном конструкторе поставить св-во формы this.ShowInTaskbar = false всё работает до изменения этого св-ва (((( | |
4
- 12.12.2012 - 18:36
| может это свойство нельзя переопределять когда приложение выполняется? | |
5
- 13.12.2012 - 09:45
|
namespace WindowsFormsApplication1 ** public partial class Form1 : Form ** public Form1() ** InitializeComponent(); ** private void Form1_Load(object sender, EventArgs e) ** this.ShowInTaskbar = false; ** private void notifyIcon1_DoubleClick(object sender, EventArgs e) ** if (this.Visible) ** this.Hide(); ** else ** this.Show(); ** ** ** ** ----- У меня все работает... ShowInTaskbar как я понял отвечает только за то, будет ли форма отображатся в таскбаре когда она видима (после this.Hide() независимо от ShowInTaskbar в таскбаре ничего нет). Возможно из-за этого и происходит исключение. | |
6
- 13.12.2012 - 11:36
| Вычитал на забугорном форуме что есть какая-то особенность .net, и решением является создание contextmenu без создания формы. В общем решилось всё - проше некуда - изменил свойство opacity с 0 до 100% - неправильно, знаю, но в условии огр.кол-ва времени на разработку - самое то ) | |
| Интернет-форум Краснодарского края и Краснодара |