正在将文本框添加到列表中

本文关键字:列表 添加 文本 | 更新日期: 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。您可以完全限定每种类型的名称,或别名usings中的一个。

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);

在这一点上,你不需要整个"这个"的东西。