正在将文本框添加到列表中
本文关键字:列表 添加 文本 | 更新日期: 2023-09-27 18:04:54
我正在尝试将一组文本框添加到列表中。我一直收到一个错误。无法从"System.Windows.Forms.TextBox"转换为"Microsoft.Office.Interop.Excel.TextBox"。不确定我收到此错误的原因。我需要添加演员阵容吗?这是我的密码。我想添加的文本框在getValues中。我没有处理过很多windows表单,所以这个错误对我来说是个谜。
class DiagnosticsExcelFile: ConfigForm
{
string fileName = "";
private ConfigForm configForm;
Excel.Application xlApp = null;
Excel.Workbook xlWorkBook = null;
Excel.Worksheet xlWorkSheet = null;
List<TextBox> list = new List<TextBox>();
public DiagnosticsExcelFile(ConfigForm config)
{
fileName = "Z:''UCA''Diagnostics.xlsx";
this.configForm = config;
this.list.Add(this.configForm.HighOffSetX); // get error here
}
private void getValues()
{
this.configForm.HighOffSetX.Text = "5.0";
this.configForm.HighOffSetY.Text = "5.0";
this.configForm.HighOffSetZ.Text = "5.0";
}
}
定义您的列表,如:
List<System.Windows.Forms.TextBox> list = new List<System.Windows.Forms.TextBox>();
当前,您的List
正在引用Microsoft.Office.Interop.Excel.TextBox
中的TextBox。
Microsoft.Office.Interop.Excel=
和System.Windows.Forms
都有一个类TextBox
,因为您还没有显示您的using指令,所以我假设您有
using Microsoft.Office.Interop.Excel;
并且您没有针对System.Windows.Forms
的using指令,因此您的代码考虑将List
包含Office Interop中的TextBoxes(顺便说一句,如果你有两个引用,那么你会得到一个错误,因为对TextBox
的引用不明确(
通过明确定义System.Windows.Forms.TextBox
,您的错误将消失。
using TextBox = System.Windows.Forms.TextBox;
我通常觉得这种方法最有效。它不需要太多代码更改,并且允许保持行数较短。
您没有指定完整的名称空间,但可能有:
using System.Windows.Forms;
using Microsoft.Office.Interop.Excel;
在您的代码文件中。编译器无法判断您的意思是哪个TextBox。您可以完全限定每种类型的名称,或别名using
s中的一个。
using xl = Microsoft.Office.Interop.Excel;
然后将Excel文本框称为xl。文本框。只指定TextBox
会得到您所期望的System.Windows.Forms
。
您正在从System.Windows.Forms.TextBox隐藏TextBox类型(可能使用的是使用TextBox=Microsoft.Office.Interop.Excel.TextBox(。
尝试用声明您的列表
List<System.Windows.Forms.TextBox> list = new List<System.Windows.Forms.TextBox>();
您的定义是正确的。向列表中添加新成员时出现问题。尝试以下操作:
list.Add(HighOffSetX);
在这一点上,你不需要整个"这个"的东西。