我正在开发一个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
}
答案 0 :(得分:0)
你说你已经搜索了两天了。你在搜索什么? How to implement automatic indentation
?好吧,这可能不会引导您找到解决方案。 (编辑:实际上,即使这会给你一些结果......)
尝试将问题分成几部分。自动缩进需要哪些步骤?请注意,这不仅限于用户按下Enter键的情况!一旦确定了这些步骤,就可以开始对每个步骤进行单独搜索。这样,您将学习一些语言和框架功能,这些功能将比完整的代码解决方案更有帮助。
作为首发,可能的步骤可能包括:
答案 1 :(得分:0)
我不会在这里发布完整的代码,而是试图引导你走向逻辑,这样你就可以从概念到实现。我认为这将有助于更好地理解(a)如何处理一般的编码问题,以及(b)具体解决这个问题所需的代码。
首先,将您的问题分解为一系列独立的步骤......
其次,了解您的方法的局限性,并确保您的要求与这些限制不相容。
然后,开始弄清楚如何以您使用的任何语言实现您的逻辑。第一步是“找到上一行”。我们如何找到前一行?怎么样向后搜索,直到你遇到行终止符?看看你正在使用的语言是否有自动执行的操作(提示,C#确实... Google“LastIndexOf”并注意“StartIndex”参数)如果没有,请自行实现。
当您解决问题时,您可以搜索像SO这样的网站,以获得更集中,更有针对性的内容,例如“如何向后搜索字符串”,而不是像您提出的那样广泛的问题。
祝你好运,我对你的建议不关注代码。专注于导致代码的思维过程,其他东西将落实到位。