2011-12-12 71 views
2

我正在寫一個應用程序來取代一些基於紙張的測試表單。這些表格有複選框,測試人員根據測試結果用一個檢查或一個X標記。我將如何去從winforms複選框中獲得這種視覺感受?如何使WinForms三態複選框狀態顯示check/X/empty?

+1

CheckBox控件不支持自定義其外觀。通過從Control中派生出一個類來創建你自己的。重寫OnPaint和OnMouseUp方法使其外觀和行爲類似複選框。 –

回答

7

啓用ThreeState財產。

如果爲「不確定」狀態,你寧願有一個「X」,你可以(使用控件的Paint事件)繪製此自己。一個例子:

private void checkBox1_Paint(object sender, PaintEventArgs e) 
{ 
    CheckBox s = (CheckBox)sender; 
    if (s.CheckState == CheckState.Indeterminate) 
     e.Graphics.DrawString("X", s.Font, Brushes.Black, new Point(1, 1)); 
} 

你當然可以畫一些線或更多的圖形。乾杯!

+0

儘管這並不是完整的答案。視覺效果也需要改變。 – ChrisF

+0

當然,如果OP需要「X」而不是正方形。 – JYelton

+0

謝謝,是的,我已經意識到ThreeState選項,並已啓用。只是尋找如何改變視覺。 –