C# menu update command
22 отговора
0 прегледа
C# menu update command
Имам малка питанка!
В MFC има едно нещо Event Handler и по-специялно един дет се вика за да update-не менютата на прозореца. Oт един час си блъскам главата и не мога да разбера какъв е .NET C# вариянта на този update event handler. Кажете как се прави в C# менютата и toolbar-а сами да си update-ват item-ите?
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
В MFC има едно нещо Event Handler и по-специялно един дет се вика за да update-не менютата на прозореца. Oт един час си блъскам главата и не мога да разбера какъв е .NET C# вариянта на този update event handler. Кажете как се прави в C# менютата и toolbar-а сами да си update-ват item-ите?
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
Re: C# menu update command
Аз ако знаех нямаше да питам :)
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
Re: C# menu update command
google.com
msdn.com
търсих ма явно не съм търсил правилното нещо
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
msdn.com
търсих ма явно не съм търсил правилното нещо
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
Re: C# menu update command
Какво точно искаш да кажеш със "менютата сами да си update-ват item-ите"? Кое искаш да се промени на item-ите - текста или може би checked/unchecked състоянието?
Re: C# menu update command
ето пример:
Искам когато селектирам item от един ListView дадено меню да се активира (myMenu_ToolStripMenuItem.Enabled == true) а когато няма селектиран item (myMenu_ToolStripMenuItem.Enabled == false).
На toolbar имам иконка (бутон) който също трябва да се активира/деактивира като менюто.
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
Искам когато селектирам item от един ListView дадено меню да се активира (myMenu_ToolStripMenuItem.Enabled == true) а когато няма селектиран item (myMenu_ToolStripMenuItem.Enabled == false).
На toolbar имам иконка (бутон) който също трябва да се активира/деактивира като менюто.
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
Re: C# menu update command
в C# също има events, event handlers, delegates....какво още ти трябва?
еее гуита не си ли писал
човека явно се интересува от еквивалент на ON_UPDATE_COMMAND_UI.
NE SUTOR ULTRA CREPIDAM
NE SUTOR ULTRA CREPIDAM
Re: еее гуита не си ли писал
Писал съм доста GUI-та. За пръв път чувам за такова нещо.
(НЕ СЪМ ползвал MFC, а VB6/C ++ Builder 5 & 6/VB 2005.)
(НЕ СЪМ ползвал MFC, а VB6/C ++ Builder 5 & 6/VB 2005.)
Редактирано от naki на
Re: C# menu update command
Ами много просто. Във OnChange (или нещо сходно) събитието на ListView-тo добавяш код, който enable-ва или disable-ва менюто и toolbar бутона. Поне във не-MFC програми така съм го правил.
Редактирано от naki на
Re: еее гуита не си ли писал
ами да, точно за ON_UPDATE_COMMAND_UI питам
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
Re: еее гуита не си ли писал
А това за OnChange (или нещо сходно) събитието на ListView-тo ми мина през акала ама нещо не ми хареса мноо като идея. MFC метода ми се струва малко по-добър.
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
Re: еее гуита не си ли писал
Ами не знам, според мене е ОК... Точното име на събитието е SelectedIndexChanged. Ето и пример:
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count == 0)
{
mnuMyMenuItem.Enabled = false;
}
else
{
mnuMyMenuItem.Enabled = true;
}
}
Re: C# menu update command
е да, ама човек като е вкусил от ON_UPDATE_COMMAND_UI и това което предлагаш изглежда дървено. метода за който говорим е много хубаво измислен, но за съжаление не е функция на виндовса, а само на мфц. то мфц не е от най-великите творения в областта на гуитата, обаче специално за това нещо заслужават пчеличка.
Re: C# menu update command
Ами както и си мислех - в C# няма ON_UPDATE_COMMAND_UI
.
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
Re: C# menu update command
ON_UPDATE_COMMAND_UI е само макрос , който асоциира към message map-а на класа ти update функциика; тази функция се вика когато системата ти праща WM_IDLE ( т.е. като няма други съобшения )( за това когато предефинираш OnIdle() на някой мфц клас не трябва да забравяш да извикаш метода на базовия клас, защото иначе някъде нещо няма да ти се update-не
)
твоята update функция се вика "автомагически" когато application-a ти е в idle режим;
may the source be with you...
твоята update функция се вика "автомагически" когато application-a ти е в idle режим;
may the source be with you...
Re: C# menu update command
не съм го чоплил много, но май не се вика в onidle, понеже така ще плюска много процесор. мисля че се вика по разни входни събития - мишка, клавиатура, таймер. ако пуснеш нишка която мени условието за разрешаване на бутон, няма да се усети.
NE SUTOR ULTRA CREPIDAM
NE SUTOR ULTRA CREPIDAM
Re: C# menu update command
Ми знам, че работи по този или подобен начин. Аз сега се мъча да уча C# и затова първо гледам да намеря приликите между C# и MFC.
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
Re: C# menu update command
may the source be with you...