[.NET] KeyUp问题

楼主: KawasumiMai (さあ、死ぬがいい)   2015-03-03 15:49:37
VB.net
原本只是纯粹简单想写一个"全画面"(not全萤幕)容器
结果没想到遇到瓶颈= =
Code在此
http://chopapp.com/#sgv82k2
简单的说
Ctrl+Enter 可以切换边框跟无边框
Alt+Enter 可以切换全画面跟视窗
(全画面的意思:不进入全萤幕模式,只是纯粹把视窗无边框化并填满画面,可切换视窗)
bFullSreen:纪录状态是否全画面中
bShowBorder:纪录全画面前的边框状态
bToogle:纪录按键状态,后述
bChangeWithKey:判定是否因快速键而启动SizeChanged事件
(命名很烂而且写得很乱)
**
1.首先虽然有用 pWindowSize 纪录全画面前的视窗大小
但因为 SizeChanged 事件的启动时机对KeyDown的先后顺序微妙
加上修改 FormBorderStyle 好像也会动到 SizeChanged
所以变成原本 pWindowSize 会在恢复视窗前再次纪录 Me.Size
所以才在前后包夹 bChangeWithKey 并用他当判断标准(原本是 bFullScreen )
不知道有没有更好的写法...感觉颇蠢的
2.这次主要的问题,是 MyBase.KeyUp 没反应
主要是想解决按住不放会快速来回状态的问题,所以加了bToogle当Flag
但没想到 MyBase.KeyUp 没反应导致bToogle根本不会回复,变成只有一次改变机会
上网找了一下需要修改 Me.KeyPreview 为True
但还是没有改善这个情况
请问何解?

Links booklink

Contact Us: admin [ a t ] ucptt.com