我想用不同的背景和不同的按钮图像自定义我的 winform 的控制框。我该怎么做?有没有办法用用户控件或类似的东西制作一个自定义控件框,然后将它添加到winform?
问问题
3801 次
3 回答
0
UserControl
您可以通过从类似的继承来创建自己的自定义控件
class MyControl : System.Windows.Forms.Button //this could also have been System.Windows.Forms.UserControl or any other existing control type as a template
{
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
//Paint whatever you wish on this buttons graphics using e.Graphics
}
}
编写自定义控件有很多内容。这里要回答的太多了。一个很好的参考是:http: //msdn.microsoft.com/en-us/library/6hws6h2t.aspx
您可以创建自己的表单控件并隐藏父控件框。或者,也许您可以继承System.Windows.Form
并创建一个自定义表单。但我自己从未尝试过。
对于使用 OnPaint,如果您关心性能和/或闪烁等,则必须牢记一些规则:在 .Net 应用程序中使用 OnPaint 的正确方法是什么?
于 2013-03-13T08:46:31.843 回答
0
您对使用 .NET 框架的方式没有影响。您必须为表单的非客户区实现自定义绘图。以下内容可能会对您有所帮助:http: //www.codeplex.com/wikipage ?ProjectName=CustomerBorderForm&title=Painting%20NonClient%20Area
于 2013-03-13T09:00:53.727 回答
-1
不知道我理解对不对。您想创建自己的控件吗?如果是,试试这个:
- 创建自定义控件。
- 更改控件的类型。
改变:
public partial class MyCustomControl : Control { ... }
为了:
public partial class MyCustomControl : Form { ... }
- 将 Controlbox 属性的值更改为 false。
- 更改您想要自定义的任何属性。
- 创建一个新表格。
- 更改表单的类型。
改变:
public partial class MyForm : Form { ... }
为了:
public partial class MyForm : MyCustomControl { ... }
现在您的 MyForm 就像您的 MyCustomControl 一样,您可以在所有项目中重复使用。
于 2013-03-13T17:04:13.677 回答