2010-10-22 65 views
-1

基本上,我製作的繪製應用程序與MSPaint非常相似。 這個想法是,用戶點擊窗體上的任何地方,並應該能夠在控件中寫入文本。接下來,該文本應該以g.drawstring圖形方法顯示。如何在運行時繪製文本

+1

不錯的功課.. – nothrow 2010-10-22 10:06:31

回答

3

我不想爲你做所有的事情,但這裏是一個完成你概述的目標的基本綱要。這不一定是最好的方法,但它應該讓你開始,並將向你介紹一些WinForms概念。

寫作文
創建FormTextBox控件添加到它。確保它默認是隱藏的。覆蓋FormOnMouseClick方法,並添加代碼以檢查TextBox是否可見,如果不可見,則顯示它並將焦點置於其上以供用戶輸入其文本。如果TextBox已經可見,則代碼應該隱藏它並在其顯示文本的位置創建一個新的UserControl(請參閱下面的UserControl的詳細信息)。

還添加了一個事件處理程序TextBox因此,如果用戶點擊Esc鍵,它取消了編輯,如果他們按下回車鍵,文字被接受並創建UserControl

顯示文本
創建UserControl,並確保了UserPaintOpaque樣式在其建設集(見SetStyle - 你可能還需要考慮OptimizedDoubleBufferAllPaintingInWmPaint,因爲這可以減少閃爍,雖然它確實需要額外的油漆代碼)。

重寫OnPaint方法在UserControl和實現代碼繪製字符串(請記住,您還需要一種方法來設置控件上的文本)。

結論
如果你鉤一切,你應該有出現,以滿足您的需求的東西。爲進一步實驗,請考慮如何刪除對UserControl的需求。祝好運並玩得開心點!