0

我想使用具有多行(TextMode = TextBoxMode.MultiLine)属性的文本框。但是当我像下面这样写(sample1)时将任何行写入文本框时,我想显示一个像sample2这样的列表项图标。

(sample1)
Stack
Over
StackOver
StackOverflow


(sample2)
* Stack
* Over
* StackOver
* StackOverflow

可能吗?

4

1 回答 1

1

这可能不是最优雅的方式,但它对我有用。使用Key_Up事件并抓住Return关键:

private void TextBox1_KeyUp(System.Object sender, System.Windows.Forms.KeyEventArgs e)    {

    if (e.KeyCode == Keys.Return) {

        string[] TextLines = TextBox1.Text.Split(Environment.NewLine);

        TextBox1.Text = "";    

        foreach ( txLine in TextLines) {

            if (!txLine.Contains("*") & !string.IsNullOrEmpty(txLine.Trim)) {
                txLine = "* " + txLine;    
            }

            TextBox1.Text += (txLine + Environment.NewLine);    
        }

        TextBox1.SelectionStart = TextBox1.Text.Length;
        TextBox1.ScrollToCaret();
    }    
}

注意你会在两行之间得到一个空行,我会让你修复它:-)

于 2013-01-29T13:13:26.120 回答