Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建新行时自动缩进_C#_Winforms_Richtextbox_Indentation - Fatal编程技术网

C# 创建新行时自动缩进

C# 创建新行时自动缩进,c#,winforms,richtextbox,indentation,C#,Winforms,Richtextbox,Indentation,我正在做一个学校的项目,它是一个HTML编辑器。现在,我有一个问题,如何使一个自动缩进每当我做一个新的行。压痕的间距应与其上方的线条相同。我希望我的问题足够清楚 private void richTextBox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Return) { richTextBox1.Text = //this part, i don't know how to make

我正在做一个学校的项目,它是一个HTML编辑器。现在,我有一个问题,如何使一个自动缩进每当我做一个新的行。压痕的间距应与其上方的线条相同。我希望我的问题足够清楚

private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
   if (e.KeyCode == Keys.Return)
   {
       richTextBox1.Text = //this part, i don't know how to make it
   }

你说你已经找了两天了。你在找什么<代码>如何实现自动缩进?嗯,这可能不会让你找到解决办法。(编辑:实际上,即使这样也会给你一些结果…)

试着把问题分成几部分。自动缩进需要哪些步骤?请注意,这并不限于用户按下Enter键的情况!一旦识别了这些步骤,就可以开始对每个步骤进行单独搜索。通过这种方式,您将学习相当多的语言和框架特性,这些特性将比完整的代码解决方案更能帮助您

首先,可能的步骤可能包括:

  • 确定何时向文本中添加新行/特定字符
  • 确定文本何时粘贴到文本框
  • 将文本附加到现有文本
  • 等等

我不想在这里发布完整的代码,而是尝试引导您了解逻辑,这样您就可以从概念到实现。我认为这将有助于对(a)如何处理一般的编码问题和(b)具体解决此问题所需的代码有更坚实的理解

首先,把你的问题分解成一组独立的步骤

  • 查找上一行
  • 计算该行以多少空格/制表符开头
  • 在最后一行追加相同数量的空格/制表符
其次,了解您的方法的局限性,并确保您的需求与这些局限性不兼容

  • 假设:此解决方案适用于文本框末尾添加的新行
然后,开始弄清楚如何用您正在使用的任何语言实现您的逻辑。第一步是“找到前一行”。我们如何找到前一行?向后搜索直到找到一个行终止符怎么样?查看您正在使用的语言是否有自动执行的功能(提示,C#有…谷歌“LastIndexOf”并注意“StartIndex”参数),如果没有,请自己实现

当你把问题分解后,你可以像这样在网站上搜索更集中、更有针对性的东西,比如“如何反向搜索字符串”,而不是像你问的那样广泛的问题


祝你作业顺利,我建议你不要把重点放在代码上。专注于导致代码的思考过程,其他事情就会到位。

到目前为止,您尝试了哪些?你需要用制表符还是空格缩进?嗨,哈菲兹,到目前为止你的代码是什么?事实上,当你的问题和标签结合在一起时,你的问题是完全有意义的。感觉就像1)我在做家庭作业,2)你会得到免费的工作,实际上并不关心从结果中学习任何东西。@nphx先生/女士,我不是开玩笑。@ChrisK我试过使用按钮,但仍然不工作谢谢你的建议,先生/女士。每当我尝试搜索解决方案时,我从不使用“How to…”,因为我们不允许使用“How to…”、“How can I…”等。再一次谢谢你,先生/夫人谢谢你,先生/夫人。这对我帮助很大!我从来没有想过如何寻找解决方案。