wpf - Closing Settings dialog causes application to quit -
so here's setup. have standalone wpf application i've built vb. contained in application 2 windows, mainwindow , settingswindow, opens dialog , called subprocedure in mainwindow.xaml.vb on event of clicked "settings" button (i working code-behind better xaml if can it).
in settingswindow.xaml.vb, have subprocedure handling event of clicking close button in window. executes me.close(). intent close settingswindow , return focus mainwindow, instead, entire application terminates.
additionally, clicking close button in mainwindow closes mainwindow, doesn't terminate application in visual studio's debug mode, while closing settingswindow does.
when building application , running outside of visual studio (running .exe in windows), closing settingswindow returns mainwindow intended, attempting re-open settingswindow causes entire application crash.
i'm relatively new visual studio, , can post code needed. ahead of time help.
first, here `application.xaml.vb' file handling app startup:
class application public shared initmain mainwindow = new mainwindow() public shared sub appstart() handles me.startup initmain.updatesettings() initmain.show() end sub end class the code above checks my.settings, works fine, calls mainwindow open.
here code in mainwindow sub calling settingswindow:
private sub settingstart() handles settingsbutton.mouseup dim settingwin settingswindow = new settingswindow() ' "if" blocks here check my.settings before opening window settingwin.showdialog() end sub finally, here code closes settingswindow:
private sub closebuttonclick() handles closebutton.mouseup me.close() end sub if need it, here application.xaml:
<application x:class="application" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" startup="appstart"> <application.resources> </application.resources> </application> update:
it looks issue has fact instance of mainwindow in application.xaml.vb public shared, need able call instance other places update settings in realtime, can't change this. workarounds?
additionally, program functions outside of visual studio, no longer crashing.
you need set shutdownmode="onlastwindowclose" in application.xaml
<application x:class="application" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" startupuri="mainwindow.xaml" shutdownmode="onlastwindowclose" > <application.resources> </application.resources> </application> mainwindow.xaml.vb
class mainwindow private sub buttonsetting_click(sender object, e routedeventargs) handles buttonsetting.click dim settingwin settingwindow = new settingwindow() dim rslt boolean = false rslt = settingwin.showdialog() end sub end class
Comments
Post a Comment