问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C#文本框TextBox使用问题

发布网友 发布时间:2022-05-17 13:28

我来回答

4个回答

热心网友 时间:2023-10-23 02:03

1)在Form1上拖入两个TexBox,分别为textBox1和textBox2。textBox1用来显示输入的文本;textBox2用来输入文本。

2)在Form1.cs中添加一个类TextUndoBuffer。代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        TextUndoBuffer buffer;

        private void Form1_Load(object sender, EventArgs e)
        {
            buffer = new TextUndoBuffer();
        }

        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            //按下Ctrl+z,取消最近一次输入的内容
            if (e.KeyCode == Keys.Z && e.Modifiers == Keys.Control)
            {
                buffer.Undo();
                textBox1.Text = buffer.GetAll();
            }
        }

        private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == (char)Keys.Return)
            {
                string s = textBox2.Text.Trim();
                if (s != string.Empty)
                {
                    buffer.PutInBuffer(" " + textBox2.Text.Trim());
                    textBox2.Clear();
                    textBox1.Text = buffer.GetAll();
                }
            }
        }

    }

    /// <summary>
    /// 这个类用来记录输入的内容并支持Undo
    /// </summary>
    class TextUndoBuffer
    {

        List<string> buffer;

        public TextUndoBuffer()
        {
            this.buffer = new List<string>();
        }

        /// <summary>
        /// 将输入的一句话放入缓冲区
        /// </summary>
        /// <param name="s"></param>
        public void PutInBuffer(string s)
        {
            this.buffer.Add(s);
        }

        /// <summary>
        /// 从缓冲区获取所有输入的内容
        /// </summary>
        /// <returns></returns>
        public string GetAll()
        {
            string s = string.Empty;
            foreach (var q in this.buffer)
            {
                s += q;
            }
            return s;
        }

        /// <summary>
        /// Undos实现取消最近一次输入的内容
        /// </summary>
        public void Undo()
        {
            if (this.buffer.Count == 0) return;
            buffer.RemoveAt(this.buffer.Count - 1);
        }
    }
}

3)事件处理

注意:textBox1和textBox2“共用”了同一个KeyDown事件处理函数,详细见上面代码

热心网友 时间:2023-10-23 02:04

你用一个数组记录你的操作,然后按撤销顺序读取,不知是否可行?

热心网友 时间:2023-10-23 02:04

把问题说清楚

热心网友 时间:2023-10-23 02:05

用richTextBox追问貌似也不行啊

追答richTextBox应该是可以的啊,我用的是VS2010

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...频数和频率成正比,2频数一定时,频率与总次数成反比,对不对_百度... ...总次数之间的关系是( ) A.频数越大,频率越大 B.总次数一定时,频数越... 实验的总次数、频数及频率三者的关系是( )A.频数越大,频率越大B.频数... 嘎牙鱼的做法大全 安无线网要用多少元网费要交多少元不用用了要不要交网费,想寻求大家的... 无线网费1年多少钱 "Hbr"作为“港”的缩写,其在英语中的使用频率和应用示例如何? 【车主点评:吉利汽车帝豪GL 使我荣华富贵】 请问,如果,家用,自动挡,帝豪gl,英朗,科沃兹,卡罗拉,轩逸,同等价位,建议... ...景点?既能休闲的时候看看又能长点知识@@谢谢各位了! vb中textbox的lostfocus的用法 生腌鱿鱼的做法步骤图,生腌鱿鱼怎么做好吃 秦皇岛澜郡华府楼盘五证齐全吗 秦皇岛澜郡华府楼盘五证齐全吗 微信右上角三个点不见了怎么办 秦皇岛 人民广场附近 怡安嘉园 关于买房 怎样腌白萝卜好吃又脆? 秦皇岛秦皇皓月城楼盘五证齐全吗 秦皇岛海港区哪个小区最好 想在秦皇岛买房,现在哪里比较实惠? 秦皇岛火车站附近妇幼保健院对面,秦铁家园开盘了,4400元每平米,这个地段这个价位怎样?有升值空间 iPad微信进入联系人页面右上角三个点不见了 秦皇岛,2017年有要新开盘的楼房吗 高德打车里的哪个平台可以提现到银行卡 二代征信负债率怎么看 电脑为什么一闪一闪的就黑屏了 电脑屏幕总是闪着闪着就黑屏了 油泼面里都放了什么调料为什么这么好吃 全网通与移动版的区别 清补凉要什么材料 如何使用.net(c#)的TextBox绑定数据 C# textbox或其他控件使用方法 c# 中TextBox tb = (TextBox)sender表示? 如何使textBox文本框即可以输入数字也可输入字母 在winform窗体中怎么用textbox数组写乘法表? c#中textbox的使用 c#中textBox_leave是什么意思?怎么用Leave事件啊? VS2010中的DateTimeTextBox怎么用?求解答,急!!万分感激 VB中textbox的change事件是什么意思啊?怎么用啊? vb中rich textbox1控件怎么使用 在VS中textbox.text.trim() 与textbox.text使用有什么区别 删除微信好友,手机号,重新加回来对方知道吗? 劳动法中的工作时间与加班问题 为什么外国人好象都有用不完的假期??? 公司按照每月174小时的标准,超出部分计算加班工资,我2012.10.12日正式上... 有一款鞋子,女靴,靴筒是可以分开使用的! 女靴一般都是什么时间穿 百丽女靴BT7703 毛衣配格子裙,这样的宋茜你喜欢吗? 白色吊带裙配什么鞋子好看