如何在文本框中突出显示并使用突出显示的行?

时间:2014-11-11 21:08:34

标签: c# visual-studio-2010 variables textbox highlight

我正在尝试制作机器代码模拟器。它是贯穿每一行/指令并根据高亮显示的窗帘线执行某些功能。

如何在文本框中突出显示一行,并且能够将其作为字符串或int自动使用,而不是手动使用该程序。

我有一个IO类,它从文本文件中读取文本。在我的文本文件中,文本看起来像这样

00 0000000
01 0000000
02 0000000
03 0000000

当我让我的IO类读入它时,在该方法中它返回一个字符串S.

我的S是一整串#34; 00 0000000 \ n 01 0002020 \ n 02 0020202 \ n 03 0101001"但当 它显示在文本框中,如下所示。

例如在我的文本框中我有

00 0000000
01 0000000
02 0000000
03 0000000

我的程序将从第0行开始,当它通过每一行时,它会自动突出显示它所在的行,以指示该程序所在的行/指令。

如何突出显示特定行,以便我的程序让用户知道正在使用该行。

例如,程序在第3行。

02 0000000

它会突出显示并显示第3行正在文本框中使用。

我如何能够将每一行用作单独的行或整数。由于字符串是原始的,只添加了新行的单个字符串。我怎样才能将文本框中的每一行分隔为用于计算的自己的字符串或整数。

例如,假设程序在第3行,它会突出显示第3行。

02 0000000

然后让我们加1。

int N=1, sum=0;
sum = line3 +N;

然后将结果显示回特定行或文本框中的窗帘线。

我必须能够像文本框中出现的那样将其重写回文本文件。 因此,如果第3行发生更改,则文本文件应如下所示

00 0000000
01 0000000
02 0000001  // or just 1
03 0000000

1 个答案:

答案 0 :(得分:0)

  

如何在文本框中突出显示一行,并将其用作   string或int?
...
如何突出显示特定的行   所以我的程序让用户知道正在使用该行。

使用鼠标:按住左键开始选择,移动到文本框中的所需位置,然后释放鼠标按钮。

如果这不是您正在寻找的答案,我现在可以为您做的是通知您System.Windows.Forms.TextBox具有以下属性:

  • .SelectionStart选择开始时,以及键输入 的位置。
  • .SelectionLength这是字符数量的选择长度。如果是0,则表示没有选定的文字。

现在,不知道选择的逻辑/条件是什么 - programmaticaly - 一些lambda数字字符, 你不能让我们猜测 。它正常的谷歌返回垃圾,因为谷歌不明白你想要做什么。哪种选择是正确的?

  • 00 0000000
    01 0002020
    02 0020202
    03 0101001

  • 00 0000000
    01 0002020
    02 0020202
    03 0101001

  • 00 0000000
    01 0002020
    02 0020202
    03 0101001

  • 00 0000000
    01 0002020
    02 0 0202 02
    03 0101001

为什么是第2行而不是第0行或第45行?我们怎么知道在哪里开始选择到哪里结束呢? (注意,行索引是base-0,即human-line1是computer-line0,human-line2是computer-line1 ......字符索引也是如此:第一个字符被索引[0])


  

我怎样才能将该行用作int或字符串。

TextBox1.Text.Substring(TextBox1.SelectionStart, TextBox1.SelectionLength) => String
  

作为int

int MyInt = 0;
if (Int.TryParse(MySelection, MyInt))
{
    // ... you can use MyInt...
}

Carefull:如果您有空格或换行符,则必须删除那些(可见或不可见)字符,以使用表示为字符串的连接整数。但同样,逻辑取决于你的目标。我们无法猜测空格和换行符是否被视为数字分隔符或忽略它们(在这种情况下删除它们)


  

所以我可以把它作为一个字符串或int变量,放在一个不同的文本框中。

TextBox2.Text = TextBox1.Text.Substring(TextBox1.SelectionStart, TextBox1.SelectionLength)

你应该将问题分成较小的问题,但请相信我,就在这里,你有那些较小的问题的答案。如何将字符串转换为整数C#?如何删除字符串C#中的空格?如何删除字符串C#中的换行符? ...

阅读.SelectionStart.SelectionLength的文档。

你说RichTextBox不是你正在寻找的东西.RichTextBox派生自TextBoxBase以及TextBox。

事实是,如果你没有尝试,或至少在细节上解释你的目标,不要指望别人帮忙。如果我问你how do I use a hammer ?不要担心,这就好了。我没有进行投票......但是我可能(而且我应该)在此之后不再是来自你的努力