我是一名经验不足的程序员,对于Windows编程来说是全新的。
我正在写一个我一直想要的小程序。它是使用.net框架使用C#编写的。至少这就是我认为我在做什么。所有关于框架和.net,windows窗体和win32 api的讨论都让我很困惑.. :(
无论如何我有简单的Form对象。
Form f = new Form() ;
f.Text = "" ;
f.ControlBox =false ;
现在除了一边如何删除表格上的所有边框?如同,边框应该去,但顶部边框应该保持
FormBorderStyle没有此内容的任何内容
另外,你们如何自己解决这些问题?看别人的代码?读一本书?任何特定的网站? 我用谷歌搜索,但它没有发现任何东西。
答案 0 :(得分:1)
Gidday,
不幸的是,这是不可能的 - 你可以删除整个边框,然后在表单上绘制自己的边框并使用OnMouseDown,OnMouseUp和OnMouseMove来自行拖动......
为了自己解决这个问题,我会看一下口头表达问题的各种不同方式(例如“无边界形式”,“winform上的自定义边界”等)并花一点时间用谷歌搜索它。正如我的老板明智地说的那样,生产力并不总是关于你削减了多少代码,而是关于你可以学到什么。
编辑:正如流行的表达方式所说的那样,“谷歌知道所有” - 很有可能,如果你花了一些时间谷歌搜索,你仍然找不到任何东西,那么它可能还没有解决,或者它是非常的极少。另一种方法是投资一些好书,例如Windows窗体编程(甚至只是Windows编程 - 了解Windows的底层机制非常有用,这样的事情有助于将您变成一个优秀的开发人员。一个优秀的程序员擅长编码,但是很棒的开发人员擅长构建有用的软件。:)答案 1 :(得分:1)
我假设您已经尝试过FormBorderStyle.FixedSingle?这将显示仅在顶部具有边框的表单。 无论如何,如果不是这种情况,您可以设置表单区域。
像...一样的东西。
public static void HideBorders(Form form) { Rectangle newRegion = form.Bounds; Rectangle formArea = form.Bounds; Rectangle clientArea = form.RectangleToScreen(form.ClientRectangle); formArea.Offset(form.Location); newRegion.Offset(clientArea.X - formArea.X, 0); newRegion.Width = clientArea.Width; newRegion.Height = (clientArea.Y - formArea.Y) + clientArea.Height; form.Region = new Region(newRegion); }
至于你怎么知道怎么办?你提到的所有事情,帮助文件,网络论坛,书籍。主要是练习,练习,练习。你做得越多,你应该做得越好。
答案 2 :(得分:0)
我认为实际上不可能完全按照您的描述进行操作,因为.NET Framework只是将Form的边框和标题栏的绘图委托给Windows本身,而Windows本身没有任何选项。你描述了AFAIK。
相反,我要做的是使用FormBorderStyle.None
,然后手动绘制任何你想要的窗口装饰(标题栏,边框)。
谷歌搜索“无边界形式C#”将这些网站列为前三名: