【问题标题】:how to type and mark a tabulation in a textbox control C#如何在文本框控件 C# 中键入和标记表格
【发布时间】:2012-12-13 12:24:54
【问题描述】:

我需要输入要插入 MySQL 数据库的文本,该文本总是包含制表符,例如“/t” 当我键入 Tab 键时,同一窗体中的另一个控件将获得焦点 我有一种方法可以在 C# 语言中以编程方式禁用此行为,因此我可以在文本中标记制表 谢谢。

【问题讨论】:

  • WinForms、WPF、ASP.NET、Silverlight ... ?
  • 我以为你是在网络上做的,而我的回答对此有效,如果不是网络,请告诉我,
  • 是的,我想创建一个离线网站生成器,我不想使用任何现有的 CMS

标签: c# winforms textbox focus


【解决方案1】:

我认为您需要在 WindowsForms 应用程序中完成此操作才能在您的表单中实现以下方法:

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
        if (keyData == Keys.Tab)
        {
            textBox1.Text += "\t";
            // Set the selection on the end of text.
            textBox1.SelectionStart = textBox1.Text.Length;
            textBox1.ScrollToCaret();
            return true;
        }
        return base.ProcessCmdKey(ref msg, keyData);
    }

【讨论】:

  • 这几乎可以工作,列表被标记但并不总是在正确的文本行
  • 我改了代码,看这个。如果可行,请投票并接受答案
【解决方案2】:

查看以下解决方案http://www.geekzilla.co.uk/ViewA94BBC8A-8DC4-4F14-98F9-DEDFCF40DA07.htm

虽然它只适用于 IE,但它会让你知道你要做什么

【讨论】:

  • 我不需要非 C# 解决方案!我需要输入一个包含制表符的文本,以便接下来将文本插入 MySQL 数据库 WINFORMS 应用程序而不是 web。我的应用程序最终会生成 .html 文件
  • 好吧,我认为 julio 解决方案稍加调整就可以了
【解决方案3】:

您可以为此使用 javascript

    textarea.observe('keydown', function (e) {
  if(e.keyCode==9) {
    e.element().insert("\t");
    e.stop();
  }
}

这里还有更多关于它的信息:

http://ajaxian.com/archives/handling-tabs-in-textareas

【讨论】:

  • 我不需要非 C# 解决方案!我需要输入一个包含制表符的文本,以便接下来将文本插入 MySQL 数据库 WINFORMS 应用程序而不是 web。我的应用程序最终会生成 .html 文件
  • 如果你不说它是一个 WINFORMS 我们无法知道,如果它是一个 web 项目,它就不能在 c# 中完成。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
相关资源
最近更新 更多