回答
試試這個。
我創建這是指從哪個控制你在繪製油漆處理程序調用的方法。爲了簡單起見,我剛纔在我的窗體本身。你可能有一個面板或其他控制。
該方法接受的圖形對象時,光標的規模和從哪裏開始抽出上部/左位置。規模只是高度,但所有數學都是相對於高度進行的。你可以用你想要的方式調整這些數字。
private void Form1_Paint(object sender, PaintEventArgs e)
{
DrawCaret(e.Graphics, 30, new Point(20, 20));
DrawCaret(e.Graphics, 50, new Point(100, 100));
}
private static void DrawCaret(Graphics g, int scale, Point loc)
{
g.SmoothingMode = SmoothingMode.HighQuality;
int height = scale;
int width = scale/10;
int rectBase = scale/5;
g.FillRectangle(Brushes.Black, loc.X, loc.Y, width, height);
var path = new GraphicsPath();
path.AddPolygon(new[]
{
new Point(loc.X+width, loc.Y),
new Point(loc.X+width+rectBase/2, loc.Y+rectBase/2),
new Point(loc.X+width, loc.Y+rectBase),
});
g.FillPath(Brushes.Black, path);
}
此示例產生以下輸出:
'遊標'是你用鼠標移動的箭頭。他正在談論插入符號,文本框中的垂直條。 – 2011-04-30 16:42:39
是的,我在閱讀你的答案後纔回想起來。相應地重構代碼示例。 – 2011-04-30 16:44:36
謝謝。這種方法唯一的問題是它不支持ClearType。 – DxCK 2011-04-30 19:00:46
這就是所謂的 '^符號'。 winapi函數沒有被winforms包裝,你必須拼湊它們。開始reading here。你會在我的回答here中找到代碼。
- 1. 在異步任務onPostExecution後在當前位置繪製標記
- 2. 如何在MATLAB繪圖中更改「標記」位置?
- 3. 如何解析XML文件標記位置和在地圖上繪製
- 4. 如何用x標記繪製圓圈?
- 5. flex位圖數據繪製 - 如何設置在哪裏繪製
- 6. 使用地理定位更新標記位置後無法繪製Leaflet
- 7. 在nutiteq上繪製標記時位圖大小超過32位
- 8. 在同一座標中繪製/分散位置和標記大小
- 9. 繪製兩個標記
- 10. 「@」位置標記如何工作?
- 11. 如何標記-webkit-transform-origin的位置?
- 12. 如何標記y軸上的位置?
- 13. web.config位置標記
- 14. 如何在圖形對象的任何位置繪製位圖?
- 15. 如何繪製位圖
- 16. Android:在特定位置繪製位圖,拒絕繪製
- 17. 可移動標記位置 - 刷新標記位置(GMaps4JSF 1.1.3-u3)
- 18. 如何分配當前地理座標以繪製從當前位置到目標位置的路徑?
- 19. 在座標軸上繪製標記
- 20. 在GMAPS API V3上繪製標記,並將位置發送到Google Fusion
- 21. 如何在繪製時控制圓的大小和位置
- 22. 如何設置所有者繪製工具提示的位置?
- 23. 設置可繪製位置內按鈕
- 24. 如何控制quadraticCurve用鼠標位置處理位置?
- 25. 標記在我的位置?
- 26. ORACLE:重置高位標記
- 27. 如何保存地圖繪製狀態(多邊形,折線,標記,標記)
- 28. 如何返回maya python中繪製光標的ws xyz位置?
- 29. 如何在unity3D中以鼠標位置的方向繪製x長度的線?
- 30. 如何在OpenLayers3上繪製連接標籤到其位置的線條
爲什麼你寫你自己的TextBox控件 – 2011-04-30 16:27:13
@Matti:.NET所有者繪製控件的樂趣! – 2011-04-30 16:27:55
*非常*很難讓所有者繪製的文本框正常工作。一旦你開始像這樣重新發明輪子,你會注意到你錯過了很多在Windows實現中被認爲是理所當然的基本東西。您的控件不支持從右向左的語言(並非世界上的每個人都喜歡閱讀英文),您不會獲得IME支持等等。所以,重要的是,重新考慮你是否真的想要推出自己的文本框。如果這不是用於個人學習目的,答案是**否**。 – 2011-04-30 16:34:00