绘制自定义TextBox控件

时间:2011-08-11 00:36:05

标签: c# winforms user-controls themes

我找到了这段代码here,它解释了如何创建自定义控件。我一直在使用这些控件作为按钮,但现在我开始更多地理解代码,我想尝试使用相同的绘图技术创建一个文本框控件。我一直在寻找关于这个主题的一些例子,但找不到一个例子。我不明白如果使用矩形来制作文本框,文本框是如何可写的。有没有人有在C#中创建自定义控件的经验?我希望我的文本框能够匹配上面链接中的主题,这就是为什么它必须定制。

1 个答案:

答案 0 :(得分:3)

那么,在开始时你应该记住,新文本框控件的实现有点复杂。您需要考虑以下几点:

1)你的文本框应该怎么做?用户如何与之互动?你必须抛出哪些事件? 2)你应该如何绘制文本框?它是一个带有轮廓的简单框,或者如果用户进行交互,您是否有不同的元素。

实现自己的文本框的一个很好的起点是看它是如何工作的 - 事实上,你应该首先参考来自DirectX和DirectDrawing区域的样本,一个例子是以下链接(样本是用于c ++,但其概念与windowsforms或wpf绘图中使用的相同):

http://www.uc-forum.com/forum/d3d-tutorials-and-source/65377-make-textbox-ingame-console-directx.html

可以在此处找到更直接的示例(解释如何扩展现有文本框): http://www.codedblog.com/2007/09/17/owner-drawing-a-windowsforms-textbox/

总而言之,为了实现您的目标,请尝试在开始时扩展基本文本框,然后从一个不那么复杂的组件开始,例如一个简单的复选框。继续,最后,您将能够实现自己的文本框控件;)