【窗体控件】:TextBox和RichTextBox控件

1、命名空间与继承

命名空间:System.Windows.Forms

继承:Object→MarshalByRefObject→Component→Control→TextBoxBase→TextBox[RichTextBox]

TextBox常用于从用户处获取简短的文本字符串,而RichTextBox用于显
示和输入格式化的文本(例如, 黑体、 下划线和斜体),它使用标准的格式化文本,称为Rich Text
Format(富文本格式)或RTF。

2、常用属性

方法作用
Clear()从文本框控件中清除所有文本
CausesValidation设置为true,且该控件获得焦点,引发Validating和Validated两个事件
CharacterCasing这个值表示TextBox是否会改变输入的文本的大小写
MaxLengthTextBox输入最大长度
MultiineTextBox是否可以多行
PasswordChar是否为加密字符[UseSystemPasswordChar也可以]
ReadOnlyTextBox是否只读
ScrollBars是否显示滚动条
SelectedText在文本框种选择的文本
SelectionLength在文本框种选择的字符数
SelectionStart被选中文本的开头
WordWrap是否自动换行

注意RichTextBox中LoadFile()和SaveFile()保存富文本框中的文本格式。

3、常用事件

Event作用
Clear()从文本框控件中清除所有文本
OnTextChanged(EventArgs)从文本框控件中清除所有文本
Enter从文本框控件中清除所有文本
Leave从文本框控件中清除所有文本
Validating从文本框控件中清除所有文本
Validated从文本框控件中清除所有文本
键事件
KeyDown按下对应键
KeyUp抬起对应键
KeyPress接受按下键对应建码

C#中Validating和Validated事件
如果 CausesValidation 属性设置为 false,则将取消 Validating 和 Validated 事件
焦点事件按下列顺序发生:
Enter //进入控件时发生
GotFocus //在控件接收焦点时发生
Leave //输入焦点离开控件时发生
Validating //控件数据效验时发生
Validated //数据效验完成后发生
LostFocus //失去焦点时发生


Validating 发生的时候,值还没有真正存入。如果验证失败,设置参数e.cancel = true。
Validated 发生的时候,值已经存入。
不管是Validating还是Validated事件发生的时候控件都没有失去焦点。
所以如果Validating验证错误,e.cancel = true会导致陷入死循环,焦点始终在上面,无法关闭软件。可以在Validating验证满足某条件,令e.cancel = false,强制退出。

4、示例

注意:
Validating事件中e.Cancel = true; 可以取消操作。如不符合要求的输入取消。

		//Validating事件textBox中无法输入大于10的数
        private void textBox2_Validating(object sender, CancelEventArgs e)
        {
            Console.WriteLine("textBox2_Validating");
            if (Convert.ToInt32(this.textBox2.Text) > 10)
            {
                e.Cancel = true;  
            }
        }

KeyPress事件
设置为Handled为true取消KeyPress事件。 这样,控件就不处理键按下。

	    //KeyPress事件 只允许输入0-9的键盘数字,或者BackSpace退格键
        private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8)
            {
                e.Handled = true; // Remove the character
                Console.WriteLine("删除");
            }
            else
            {
                Console.WriteLine("保留");
            }
        }

RichTextBox富文本控件中设置粗体,斜体,下划线

		//设置粗体
        private void button5_Click(object sender, EventArgs e)
        {
            Font oldfont = this.richTextBox1.SelectionFont;
            Font newfont;

            if(oldfont.Bold)
            {
                newfont = new Font(oldfont,oldfont.Style & ~FontStyle.Bold);
            }
            else
            {
                newfont = new Font(oldfont, oldfont.Style | FontStyle.Bold);
            }

            this.richTextBox1.SelectionFont = newfont;
            this.richTextBox1.Focus();
        }
		//设置斜体
        private void button7_Click(object sender, EventArgs e)
        {
            Font oldfont;
            Font newfont;

            oldfont = this.richTextBox1.SelectionFont;
            if (oldfont.Italic)
            {
                newfont = new Font(oldfont, oldfont.Style & ~FontStyle.Italic);
            }
            else
            {
                newfont = new Font(oldfont, oldfont.Style | FontStyle.Italic);
            }

            this.richTextBox1.SelectionFont = newfont;
            this.richTextBox1.Focus();
        }
		//设置下划线
        private void button6_Click(object sender, EventArgs e)
        {
            Font oldfont;
            Font newfont;

            oldfont = this.richTextBox1.SelectionFont;
            if (oldfont.Underline)
            {
                newfont = new Font(oldfont, oldfont.Style & ~FontStyle.Underline);
            }
            else
            {
                newfont = new Font(oldfont,oldfont.Style | FontStyle.Underline);
            }

            this.richTextBox1.SelectionFont = newfont;
            this.richTextBox1.Focus();
		//设置RichTextBook中间对齐
	        private void button8_Click(object sender, EventArgs e)
	        {
	            //剧中
	            if(this.richTextBox1.SelectionAlignment == HorizontalAlignment.Center)
	            {
	                this.richTextBox1.SelectionAlignment = HorizontalAlignment.Left;
	            }
	            else
	            {
	                this.richTextBox1.SelectionAlignment= HorizontalAlignment.Center;
	            }
	            this.richTextBox1.Focus();
	        }
        }		

RichTextBox保存文本格式


        private void button9_Click(object sender, EventArgs e)
        {
            // Load the file into the RichTextBox.
            try
            {
                this.richTextBox1.LoadFile("Test.rtf");
            }
            catch (System.IO.FileNotFoundException)
            {
                MessageBox.Show("No file to load yet");
            }
        }

        private void button10_Click(object sender, EventArgs e)
        {
            // Save the text.
            try
            {
                this.richTextBox1.SaveFile("Test.rtf");
            }
            catch (System.Exception err)
            {
                MessageBox.Show(err.Message);
            }
        }
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值