Я пытался добавить поле со списком или действительно любые элементы управления формой на лист Excel, который был создан на лету. Мне удалось добавить поле со списком на лист Excel при создании проекта книги Excel в C # и получить доступ к функции Controls.AddComboBox на уровне документа (Sheet1) следующим образом: Рис.
namespace ExcelWorkbook2{
public partial class Sheet1{
private void Sheet1_Startup(object sender, System.EventArgs e){
Microsoft.Office.Tools.Excel.Controls.ComboBox comboBox1
=this.Controls.AddComboBox(this.Range["A1", "A1"], "comboBox1");
comboBox1.Items.Add("1 Item");
this
относится к листу 1. Этот код отлично работает при создании проекта книги, но когда я создаю лист Excel на лету, вот так: Рис.
Application xlApp = new Application();
xlApp.Visible = true;
Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Worksheet ws = (Worksheet)wb.Worksheets[1];
Я не могу войти в WorkSheet (ws) и получить "controls.AddCombobox". Помещение рабочего листа (рис. 2) в быстрое наблюдение говорит о том, что System .___ Comobject «этот» объект в другом проекте (рис. 1) возвращает значение (ExcelWorkbook2.Sheet1). Как я могу получить доступ к Controls.AddCombobox, который представлен как WorkSheetBase для использования в созданном C # листе (рис. 2). Спасибо