我正在使用此代码在NormalState的WindowState(具有相当大的边框样式)和Maximized(边框样式为None)之间切换。
if (WindowState != FormWindowState.Maximized)
{
WindowState = FormWindowState.Maximized;
FormBorderStyle = FormBorderStyle.None;
}
else
{
WindowState = FormWindowState.Normal;
FormBorderStyle = FormBorderStyle.Sizable;
}
我还在动态调整更改后表单上某些控件的布局。我发现ClientSize.Width
和ClientSize.Height
值超出了最大化/无边框状态下的实际显示器分辨率(客户端大小:1936x1216,实际显示器分辨率:1920x1200)。这导致一些控件超出范围。
是否有一种简单的方法可以确保表单不超过屏幕限制(除了手动检查屏幕大小并将表单强制为该大小)?
答案 0 :(得分:0)
通过反转最大化和边框样式更改操作的顺序,结果是可解析的。如果在最大化屏幕之前关闭边框,则表单TAB T=1
SET myFolder D:/Temp/img/
SET urlFolder EVAL("{{!LOOP}} == 1 ? 'file:///{{myFolder}}' : 'javascript:undefined;';")
URL GOTO={{urlFolder}}
SET !EXTRACT_TEST_POPUP NO
TAG POS=1 TYPE=TBODY ATTR=* EXTRACT=TXT
SET curFile EVAL("var f = []; var a = '{{!EXTRACT}}'.match(/.+/g); for (i in a) {if (i % 4 == 0) f.push(a[i]);} f[{{!LOOP}} - 1];")
PROMPT {{curFile}}
值将与显示器大小完全匹配。
工作代码:
SET myFolder D:/Temp/img/
URL GOTO=file:///{{myFolder}}
SET !EXTRACT_TEST_POPUP NO
TAG POS=1 TYPE=TBODY ATTR=* EXTRACT=TXT
SET files EVAL("var f = []; var a = '{{!EXTRACT}}'.match(/.+/g); for (i in a) {if (i % 4 == 0) f.push(a[i]);} JSON.stringify(f);")
PROMPT {{files}}