Определение типа СОМ-объекта (System.__ComObject) с помощью Visual C# .NET

Переводы статьи Переводы статьи
Код статьи: 320523 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

В Microsoft .NET Framework оператор GetType.Type для COM-объекта возвращает класс System.__ComObject. В некоторых случаях требуется знать точный класс объекта. Например, для выполнения некоторых задач программе автоматизации Microsoft Excel необходимо знать тип выбранного пользователем объекта.

В Microsoft Visual C# .NET оператор as действует подобно оператору cast, за тем исключением, что в случае ошибки преобразования он возвращает ноль и не вызывает исключения. Оператор as можно использовать для сопоставления COM-объекта определенному типу. Операция преобразования считается успешной, если в результате ее выполнения возвращено любое значение, отличное от нуля.

Ниже приведен пример использования оператора as для определения типа COM-объекта.

Инструкции

  1. Создайте в Visual C# .NET проект типа «Приложение Windows». По умолчанию будет создана форма Form1.
  2. Добавьте ссылку на объектную библиотеку Microsoft Excel Object Library. Для этого необходимо выполнить следующие действия.
    1. В меню Проект выберите команду Добавить ссылку.
    2. В диалоговом окне Добавление ссылки откройте вкладку COM, выделите библиотеку Microsoft Excel Object Library и нажмите кнопку Выбрать.

      Примечание. В состав Microsoft Office 2003 входят основные сборки взаимодействия (PIA). Microsoft Office XP не включает эти сборки, но их можно загрузить. За дополнительными сведениями об основных сборках взаимодействия PIA для Office XP обратитесь к следующей статье Microsoft Knowledge Base:
      328912 INFO: Microsoft Office XP PIAs Are Available for Download
    3. Чтобы подтвердить сделанный выбор, нажмите кнопку OK.
  3. Выберите в меню Вид пункт Область элементов и добавьте в форму Form1 кнопку и текстовое поле.
  4. Два раза щелкните значок Form1, чтобы отобразить окно программного кода.
  5. Подставьте вместо обработчика Form1_Load
    private void Form1_Load(object sender, System.EventArgs e)
    {
    }
    					
    следующий программный код.
    Excel.ApplicationClass oExcel;
    Excel.Workbooks oBooks;
    Excel.Workbook oBook;
    
    private void Form1_Load(object sender, System.EventArgs e)
    {
    	//Start Microsoft Excel with a new workbook and give control
    	//to the user.
    	oExcel = new Excel.ApplicationClass();
    	oBooks = oExcel.Workbooks;
    	oBook = oBooks.Add(System.Reflection.Missing.Value);
    	oExcel.Visible=true;
    	oExcel.UserControl=true;
    
    	//Layout the controls on Form1 and set up the Click event 
    	//handler for the button.
    	textBox1.Text ="";
    	textBox1.Width = 200;
    
    
    	button1.Text = "Get Selection";
    	this.button1.Click += new System.EventHandler(this.ButtonClick);
    }
    
    private void ButtonClick(object sender, System.EventArgs e)
    {
    	object o = oExcel.Selection;
    
    	//Display a message about the selection type in Excel.
    	if((o as Excel.Range)!=null)
    	{
    		textBox1.Text = "Selection is Excel.Range";
    	}
    	else if((o as Excel.Rectangle)!=null)
    	{
    		textBox1.Text = "Selection is Excel.Rectangle";
    	}
    	else if((o as Excel.ChartObject)!=null)
    	{
    		textBox1.Text = "Selection is Excel.ChartObject";
    	}
    	else if((o as Excel.ChartArea)!=null)
    	{
    		textBox1.Text = "Selection is Excel.ChartArea";
    	}
    	// ... There are many additional Selection types you could check for if needed ...
    	else
    	{
    		textBox1.Text = "Selection is Unknown";
    	}
    
    }
    					
  6. Добавьте приведенный ниже оператор USING.
    using Excel = Microsoft.Office.Interop.Excel;

Проверка образца программы

  1. Для создания и запуска программы нажмите клавишу F5. Вместе с загрузкой формы Excel создает новую книгу.
  2. Расположите окна Excel и формы Form1 так, чтобы они не перекрывались.
  3. В окне Excel выделите любую ячейку.
  4. Нажмите в форме Form1 кнопку Get Selection. Появится сообщение Selection is Excel.Range.
  5. В меню Вставка приложения Excel выберите пункт Диаграмма и нажмите кнопку Готово.
  6. Нажмите на форме Form1 кнопку Get Selection. Появится сообщение Selection is Excel.ChartArea.
  7. На листе книги Excel нарисуйте прямоугольник и выделите его.

    Примечание. Чтобы нарисовать прямоугольник, воспользуйтесь инструментом Прямоугольник на панели инструментов Рисование.
  8. Нажмите в форме Form1 кнопку Get Selection. Появится сообщение Selection is Excel.Rectangle.

Свойства

Код статьи: 320523 - Последний отзыв: 3 февраля 2004 г. - Revision: 4.1
Информация в данной статье относится к следующим продуктам.
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
Ключевые слова: 
kbpia kbautomation kbhowtomaster KB320523

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com