读书人

新人学C#的一些有关问题。求解答

发布时间: 2012-04-28 11:49:53 作者: rapoo

新人学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;即刻
[解决办法]
正解

探讨

你前后两个设置的不一致,一个使用的font一个使用的selectionfont自然就改不过来了,将前后统一一下

[解决办法]
改统一吧

读书人网 >C#

热点推荐