我正在从我制作的.dll中读取.txt。
我的代码是:
Assembly assembly = Assembly.LoadFile(Application.StartupPath + "/MyFiles.dll");
System.Resources.ResourceManager resourcemanager = new System.Resources.ResourceManager("ClassLibrary1.Properties.Resources", assembly);
string[] strArrays15 = resourcemanager.GetString("JobsList").Split('\n');
for (int t = 1; t < (int)strArrays15.Length; t++)
comboBox1.Items.Add(strArrays15[0].Split('\t'));
return;
我在第三行收到以下错误:对象引用未设置为对象的实例。
答案 0 :(得分:0)
你的问题是comboBox1.Items.Add(strArrays15[0].Split('\t'));
你正在运行for语句,每次for循环运行时,从第一个strArrays15数组的Split中添加一个字符串数组到combobox项。这只是创建了一个庞大的字符串数组列表。单个字符串数组上的combobox.AddRange
,或循环并添加每个单独的项目。
这是另外一个问题。
您正在循环浏览(int)strArrays15.Length
,但使用strArrays15[0].Split('\t');
代替strArrays15[i].Split('\t');
,并将分割中的输出字符串数组添加到combox项目中,而这并不是感。你需要更清楚自己想要完成什么。
Assembly assembly = Assembly.LoadFile(Application.StartupPath + "/MyFiles.dll");
System.Resources.ResourceManager resourcemanager = new System.Resources.ResourceManager("ClassLibrary1.Properties.Resources", assembly);
if (resourcemanager != null) {
string jobListString = resourcemanager.GetString("JobsList");
if (!String.isNullOrEmpty(jobListString))
comboBox1.Items.AddRange(strArrays15[0].Split('\t'));
else
// handle error
} else
//handle error
return;
从您的代码中看起来strArrays15看起来有超过1行,所以除非您确切地告诉我您尝试将哪些数据放入combox,以及strArrays15中的内容,否则我可以&#39 ; t进一步帮助你。