Modificare contenuto casella di testo di word (controllo activex)

di il
0 risposte

Modificare contenuto casella di testo di word (controllo activex)

Buongiorno a tutti, chiedo il vostro aiuto per questo motivo. Ho inserito in un documento Word una casella di testo (controllo activex) vorrei accedere a tale controllo per esempio modificando il contenuto del testo. Ho provato il seguente codice, ma non funziona. Potete gentilmente aiutarmi?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Office.Interop.Word;
using Microsoft.Vbe.Interop.Forms;
 

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Microsoft.Office.Interop.Word.Application alex = new Microsoft.Office.Interop.Word.Application();
            Microsoft.Office.Interop.Word.Document alexdoc = new Microsoft.Office.Interop.Word.Document();
            alexdoc = null;
            try
            {
               
                alexdoc = alex.Documents.Open(@"C:\Users\Alex\Documents\doc1.docx");
                alex.Visible = false;
                alexdoc.Activate();
                
                foreach (Shape shape in alexdoc.Shapes)
                {
                    if (shape.OLEFormat != null && shape.OLEFormat is Microsoft.Vbe.Interop.Forms.TextBox)
                    {
                        var nome = (Microsoft.Vbe.Interop.Forms.TextBox)shape.OLEFormat.Object;
                        nome.Text = "alex";
                        
                    }
                    label1.Text = shape.Name;

                }

                alexdoc.SaveAs2(@"C:\Users\Alex\Documents\alexmodificato.docx");
                
            }

            catch (System.Exception ex)
            {
                label1.Text = "errore" + ex.Message;

            }
            finally
            {
                alexdoc?.Close(false);
                alex.Quit();
                alexdoc = null;
                alex = null;
            }
        }
    }
}
Devi accedere o registrarti per scrivere nel forum
0 risposte