新人学C#的一些问题。。求解答
最近一直在看C#入门经典。。。今天看做15章的一个简单文本编辑器时候遇到了一些问题。。
第一:在写一个可以把选中文本在斜体字和正常字切换的按钮。。但写完了之后只能变成斜体就变不回来了。。
但是和他类好似的代码。都可以实现转换 以下是代码。。
private void Italic_Click(object sender, EventArgs e)
{
Font oldFont;
Font newFont;
oldFont = this.richTextBoxText.Font;
if (oldFont.Italic)
newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Italic);
else
newFont = new Font(oldFont, oldFont.Style | FontStyle.Italic);
this.richTextBoxText.SelectionFont = newFont;
this.richTextBoxText.Focus();
}
还有在写设置字体大小的文本框的Validated时候按书上的代码是这样的
private void textBoxSize_Validated(object sender, EventArgs e)
{
ApplyTextSize(txt.Text);
this.richTextBoxText.Focus();
}
但是这之中的txt是在Keypress事件中定义的代码如下
private void textBoxSize_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 13)
e.Handled = true;
else if (e.KeyChar == 13)
{
TextBox txt = (TextBox)sender;
if (txt.Text.Length > 0)
ApplyTextSize(txt.Text);
e.Handled = true;
this.richTextBoxText.Focus();
}
}
编译器也会报错。。我把txt改成this的话只要运行想改变字体大小就会出错。。。
求救。。。
------解决方案--------------------
将oldFont = this.richTextBoxText.Font;改成oldFont = this.richTextBoxText.SelectionFont;即刻
------解决方案--------------------正解
------解决方案--------------------改统一吧