【问题标题】:wrapping strings around each new line in a rich text box using C#使用 C# 在富文本框中围绕每个新行包装字符串
【发布时间】:2014-02-07 16:55:09
【问题描述】:

我的 C# Winforms 应用程序中有 2 个富文本框,分别名为 richtextbox1richtextbox2 我还有一个名为 button1 的按钮。这个想法是,当最终用户将值列表粘贴到richtextbox1 例如,

C1
C2
C3
C4

richtextbox2 的结果应该是:(这是我需要帮助的)

IN ('C1','C2','C3', 'C4')

这是我目前所拥有的:

private void button1_Click(object sender, EventArgs e)
{
    string strValues;
    strValues = richTextBox1.Text;
    //MessageBox.Show(strValues);

    string strInStatement;
    strInStatement = richTextBox2.Text;

    List<string> idsList = new List<string>() { strValues };
    string whereClause = string.Join(",", idsList).ToString();

    richTextBox1.Lines = idsList.ToArray();

    foreach (string value in idsList)
    {
        MessageBox.Show(value);
    }

}

【问题讨论】:

  • 您想在第二个富文本框中显示文本吗?我觉得这个问题不清楚?
  • 这个应用程序将正确地从richtextbox1 形成值,以创建一个IN STATEMENT 以在SQL 中使用
  • 所以是的 richtextbox2 将显示新文本。
  • 你的问题是不能像这样显示IN ('C1','C2')啊?
  • 正确......我不知道该怎么做?

标签: c# winforms append richtextbox


【解决方案1】:

你可以试试这个:

private void button1_Click(object sender, EventArgs e)
{
    var textInEachLine = richTextBox1.Text.Split(new string[] {"\n"}, StringSplitOptions.RemoveEmptyEntries);
    string whereClause = string.Join("', '", textInEachLine).ToString();
    MessageBox.Show(" IN ( '" + whereClause + "')");
}

此代码将删除任何空行,并用单引号将每行中的文本换行。

【讨论】:

  • 错误,因为那不是有效的 IN 语句。单引号没有环绕每个项目?
  • 我认为你需要一个 foreach 语句?
  • 并且每个值之间需要一个逗号,最后一个值不能有逗号!
  • 再试一次,我已经验证它会给你一个正确的结果。 string.Join 只会在值之间添加分隔符,而不是在最后一个值!
【解决方案2】:

试试这个:

private void button1_Click(object sender, EventArgs e)
{
     string whereClause = String.Join("','", richTextBox1.Text.Split(new string[] { "\n" }, StringSplitOptions.None));
     richtextbox2.Text = (" IN ( '" + whereClause + "' )");
}

【讨论】:

  • 我不认为这会从数组 val 中删除最后一个逗号?
  • 终于没有逗号了。
  • 我会投票给你,因为其他用户在你之前得到了答案。
【解决方案3】:

试试这个代码

 private void button1_Click(object sender, EventArgs e)
        {


    string whereClause = String.Join("','", richTextBox1.Text.Split(new string[] { "\n" }, StringSplitOptions.None));


        MessageBox.Show(" IN ( '" + whereClause + "')");

        }

【讨论】:

  • 您在每个新行周围缺少单引号?
猜你喜欢
  • 2013-04-21
  • 1970-01-01
  • 1970-01-01
  • 2014-11-12
  • 2020-09-02
  • 2011-01-23
  • 1970-01-01
  • 2020-04-21
  • 2021-08-28
相关资源
最近更新 更多