2011-12-12 78 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选项,并已启用。只是寻找如何改变视觉。 –