【问题标题】:C#, send a value to a textboxC#,将值发送到文本框
【发布时间】:2011-10-10 20:14:43
【问题描述】:

我有字符串列表框。当我选择其中一个字符串时,我将其拆分。

我想将这个字符串的拆分值发送到textboxes。如何将值发送到文本框?

我有这个 C# 代码:

private void button8_Click(object sender, EventArgs e)
{
    string Code;
    string Name;
    string PName;
    string Cost;
    string Num;
    string Level;

    using (var streamReader = new StreamReader(filePath, Encoding.Default))
    {
        if (!streamReader.EndOfStream)
        {
            Items.Add(streamReader.ReadLine());//list Items
        }
    }

    string z = listBox1.SelectedItem.ToString();

    string[] words = x.Split(',');
    foreach (string word in words)
    {
       if (words.Length == 6)
       {
            Code = words[0];
            Name = words[1];
            PName = words[2];
            Cost = words[3];
            Num = words[4];
            Level = words[5];
        }                
    }

    textBox1.Text = Code;       //This does not send anything to the textbox
    textBox2.Text = Name;
    textBox3.Text = PName;
    textBox4.Text = Cost;
    textBox5.Text = Num;
    textBox6.Text = Level;

    using (var streamWriter = new StreamWriter(
           filePath, false, Encoding.Default))
    {
        foreach (string op in Items)
        {
            streamWriter.WriteLine(op);
        }
    }
}

textBox1.Text = Code; 的 C# 代码不会向文本框发送任何文本,如何将字符串分配给文本框?

【问题讨论】:

  • 你应该为你的控件命名。
  • 您得到的确切错误是什么?看起来如果您的拆分失败,您将输出默认值,但 String.Empty 对于 TextBox.Text 应该没问题...
  • 应该... string[] words = x.Split(',');是... string[] words = z.Split(','); ?
  • foreach 的目的是什么,这是多余的,因为 foreach 的内部引用了 words 数组
  • 错误是什么?您是否使用 Visual Studio 进入过代码?

标签: c# .net winforms listbox


【解决方案1】:

当您将Code 变量分配给TextBox 时,它仍然为空。

改成:

string Code = string.Empty;
// etc.

根据您的示例代码,您不需要任何这些字符串变量或 ForEach。只需将其直接分配给您的文本框即可。

textBox1.Text = words[0];
textBox2.Text = words[1];
textBox3.Text = words[2];
textBox4.Text = words[3];
textBox5.Text = words[4];
textBox6.Text = words[5];

并尝试为您的控件命名。 textBox4 并没有告诉你它与成本有任何关系。

【讨论】:

    【解决方案2】:
    1. 您将列表框的选定值分配给 z,然后对未声明的变量 x 调用 Split
    2. foreach(单词中的字符串)没有意义。你不需要它。删除它(但不是它的主体代码)

    【讨论】:

      【解决方案3】:

      您的变量Code 将只包含一个值,如果words.Length == 6。确保变量包含一个值。

      使用这个看看文本是否保存到文本框:

      textBox1.Text = "test";
      

      【讨论】:

        【解决方案4】:

        尝试使用像直接赋值这样的语句,例如 textBox1.Text = Code.ToString();或者 textBox1.Text=words[0].ToString();也许它可以帮助你

        【讨论】:

          猜你喜欢
          • 2016-10-28
          • 2017-08-29
          • 2017-08-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多