2009-02-07 61 views

回答

0

不幸的是,.NET CF文本框不能被繼承和用作此任務的基礎(OnPaint不會被調用,對於初學者),所以我認爲你會節省一些時間來創建自己的控件。

只是爲了得到在.NET CF創建自定義控件如果您還沒有一個手柄,因爲這一概念在很大程度上是相同的我會強烈建議下作出上透明控制這個博客帖子:

http://christian-helle.blogspot.com/2008/01/transparent-controls-in-netcf.html

如果我從頭開始做這件事,我首先從一個面板繼承,並將其變成一個文本框。文本框可能是創建最難的控件之一(尤其是如果文本可能比文本框長),所以您可能還會看到其他供應商是否擁有可以從源代碼開始的TextBox組件,這樣您就可以添加一個.DrawImage到paint方法的最後,你會得到水印。

1

如果我要這樣做,我會創建一個從TextBox派生的控件,這樣您可以獲得所有基本渲染,事件,文本和選擇yada-yada。然後,我會P/Invoke SetWindowLong更改窗口處理程序,並處理自定義處理程序中的WM_PAINT,繪製水印或任何你想要的。

一個很好的基礎示例是OpenNETCF.Windows.Forms.TextBox2類,它執行此子類來處理剪切/複製/粘貼操作。我相信自1.x天以來代碼已經存在,所以如果你沒有/想要最新的代碼,代碼是免費的(上面鏈接的頁面底部)。

+0

鏈接不工作,你有任何例子嗎? :P – lostcitizen 2015-10-20 20:45:22