C# 根据C中的文件名更新不同的文本框#

C# 根据C中的文件名更新不同的文本框#,c#,textbox,assign,C#,Textbox,Assign,我对c#编程很陌生,现在我遇到了一个很好的小问题,如果能得到一些帮助,我将非常感激。 我知道我下面的例子行不通,但它只是让你了解我想做什么。 问题是,我希望根据文件名使用文件内容更新不同的文本框。。。那么,如何将textBox.text或textBox分配给某个对象呢 public void OnChanged(object source, FileSystemEventArgs e) { string newPath = Path.Combine(activeDir, "Files");


我对c#编程很陌生,现在我遇到了一个很好的小问题,如果能得到一些帮助,我将非常感激。
我知道我下面的例子行不通,但它只是让你了解我想做什么。
问题是,我希望根据文件名使用文件内容更新不同的文本框。。。那么,如何将textBox.text或textBox分配给某个对象呢

public void OnChanged(object source, FileSystemEventArgs e)
{
   string newPath = Path.Combine(activeDir, "Files");
   string fileName = e.Name;

   if (fileName.StartsWith("O1"))
     TextBox txtBox = textBoxNC1;
   if (fileName.StartsWith("O2"))
     TextBox txtBox = textBoxNC2;
   if (fileName.StartsWith("O3"))
     TextBox txtBox = textBoxNC3;
   if (fileName.StartsWith("O7"))
     TextBox txtBox = textBoxNC4;
   if (fileName.StartsWith("O0"))
     TextBox txtBox = textBoxNC5;

   StreamReader rdr = new StreamReader(file);
   txtBox = rdr.ReadToEnd();
   rdr.Close();
}
真诚地

Hjalmarsson

你说得对

您只需确保在if测试之外声明
TextBox
,并指定
Text
属性:

TextBox txtBox;
if (fileName.StartsWith("O1")
{
    txtBox = textBoxNC1;
}
....

if (txtBox != null)
{
    txtBox.Text = rdr.ReadToEnd();
}

你说得对

您只需确保在if测试之外声明
TextBox
,并指定
Text
属性:

TextBox txtBox;
if (fileName.StartsWith("O1")
{
    txtBox = textBoxNC1;
}
....

if (txtBox != null)
{
    txtBox.Text = rdr.ReadToEnd();
}

使用通用字典消除ifs的一点不同方法:

Dictionary<string, TextBox> lookup = new Dictionary<string, TextBox>();

lookup["O1"] = textBoxNC1;
lookup["O2"] = textBoxNC2;
lookup["O3"] = textBoxNC3;
lookup["O7"] = textBoxNC4;
lookup["O0"] = textBoxNC5;

var prefix = fileName.SubString(0, 2);

if (lookup.ContainsKey(prefix))
{
  using (var reader = new StreamReader(file))
  {
    lookup[prefix].Text = reader.ReadToEnd();
  }
}
字典查找=新建字典();
查找[“O1”]=textBoxNC1;
查找[“O2”]=textBoxNC2;
查找[“O3”]=textBoxNC3;
查找[“O7”]=textBoxNC4;
查找[“O0”]=textBoxNC5;
var prefix=fileName.SubString(0,2);
if(lookup.ContainsKey(前缀))
{
使用(var reader=newstreamreader(文件))
{
查找[前缀].Text=reader.ReadToEnd();
}
}

使用通用字典消除ifs的一点不同方法:

Dictionary<string, TextBox> lookup = new Dictionary<string, TextBox>();

lookup["O1"] = textBoxNC1;
lookup["O2"] = textBoxNC2;
lookup["O3"] = textBoxNC3;
lookup["O7"] = textBoxNC4;
lookup["O0"] = textBoxNC5;

var prefix = fileName.SubString(0, 2);

if (lookup.ContainsKey(prefix))
{
  using (var reader = new StreamReader(file))
  {
    lookup[prefix].Text = reader.ReadToEnd();
  }
}
字典查找=新建字典();
查找[“O1”]=textBoxNC1;
查找[“O2”]=textBoxNC2;
查找[“O3”]=textBoxNC3;
查找[“O7”]=textBoxNC4;
查找[“O0”]=textBoxNC5;
var prefix=fileName.SubString(0,2);
if(lookup.ContainsKey(前缀))
{
使用(var reader=newstreamreader(文件))
{
查找[前缀].Text=reader.ReadToEnd();
}
}

这回答了我的问题,我一看就明白了!非常感谢。这回答了我的问题,当我看它的时候,它是清楚的!非常感谢。