我正在重新开始编写代码(我没有什么经验,只是受过一些教育)。我正在尝试创建一个hello world程序,在这个程序中,您可以更改字体的所有方面,并且目前还停留在更改类中的字体样式上。
我之所以想在类中这样做,是因为我不想对Bold、斜体和下划线的每个复选框重复相同的代码。到目前为止,我已经得到了一个基本的概念,但我觉得它的漫长和漫长,要么可以缩短,或至少可以成为某种形式的类,以便在需要时调用。到目前为止,这就是我所拥有的:
private void chkItalics_CheckedChanged(object sender, EventArgs e)
{
if (chkItalics.Checked == true)
{
Italics = true;
}
else
{
Italics = false;
}
if ((Italics == true) && (Bold == false) && (Underline == false))
{
lblHello.Font = new System.Drawing.Font(FontType, FontSize, FontStyle.Italic);
}
else if ((Italics == true) && (Bold == true) && (Underline == false))
{
lblHello.Font = new System.Drawing.Font(FontType, FontSize, FontStyle.Italic | FontStyle.Bold);
}
else if ((Italics == true) && (Bold == true) && (Underline == true))
{
lblHello.Font = new System.Drawing.Font(FontType, FontSize, FontStyle.Italic | FontStyle.Bold | FontStyle.Underline);
}
else if ((Italics == false) && (Bold == true) && (Underline == false))
{
lblHello.Font = new System.Drawing.Font(FontType, FontSize, FontStyle.Bold);
}
else if ((Italics == false) && (Bold == true) && (Underline == true))
{
lblHello.Font = new System.Drawing.Font(FontType, FontSize, FontStyle.Bold | FontStyle.Underline);
}
else if ((Italics == false) && (Bold == false) && (Underline == true))
{
lblHello.Font = new System.Drawing.Font(FontType, FontSize, FontStyle.Underline);
}
else
{
lblHello.Font = new System.Drawing.Font(FontType, FontSize, FontStyle.Regular);
}正如所说的相当混乱和笨重,任何帮助都将非常感谢。我确实考虑过要做一个开关,而不是所有的if语句,但是我想不出有什么方法可以让上面的所有内容都进入到其中。
但是最重要的是尝试将它放到类中,因为我在那里没有任何运气,因为C#中的类似乎不喜欢引用类之外的表单、控件和变量。
发布于 2016-03-14 23:26:52
你可以这样做:
FontStyle fontStyle = FontStyle.Regular;
if (Underline) { fontStyle |= FontStyle.Underline; }
// ..
lblHello.Font = new System.Drawing.Font(FontType, FontSize, fontStyle);我会将事件绑定到一个已更改的检查处理程序。还可以介绍一些计算属性:
public bool Underline { get { return chkUnderline.Checked; } }https://stackoverflow.com/questions/35999926
复制相似问题