none
textbox WPF RRS feed

  • Pregunta

  • necesito un textbox con corrector ortografico y mandarlo a a un marcador de Word, he conseguido el text box con corrector ortografico con este codigo en wpf

    <TextBox SpellCheck.IsEnabled= "True" Language= "es-PE" />

    ya tengo el corrector ortografico en mi textbox, lo necesito mandar a Word, con el siguiente codigo puedo mandar un textbox normal y si me funciona

    Documento.Bookmarks.Item("marcador1").Range.Text = textbox.Text

    ahora si quiero mandar la captura que haga el usuario en el textbox hecho en WPF no puedo

    Documento.Bookmarks.Item("marcador1").Range.Text = ElementHost1.Text

    no se si alguien tenga una solucion, gracias :S


    • Editado ceufon viernes, 9 de noviembre de 2012 18:04
    viernes, 9 de noviembre de 2012 18:01

Todas las respuestas

  • Hola ceufon.

    ¿a que te refieres con un textbox normal y otro en WPF?

    ¿acaso estas usando winforms, ya que en el codigo parece existir un host?.


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/

    domingo, 11 de noviembre de 2012 18:13
  • cuando inserto el codigo en WPF y le doy crear, me crea en eherramientas un textbox y si utilizo unoform, sabes alguna de manera de tener corrector ortografico en un textbox ?
    lunes, 12 de noviembre de 2012 14:54
  • Hola ceufon.

    Con el codigo que has puesto ya tienes la caracteristica del corrector ortografico en el textbox de wpf con SpellCheck.

    ¿no te funciona?


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/

    lunes, 12 de noviembre de 2012 18:17
  • si ya corrige, pero no captura los datos :/ es deseperante. solo imprime lo que le ponga en "text" dentro de sus propiedades, si me funciona, pero no puedo mandar a imprimirlo a un marcador de Word por que no me captura los datos que inserte el usuario :(
    lunes, 12 de noviembre de 2012 19:05
  • Hola ceufon.

    he realizado una prueba y funciona correctamente, no se exactamente donde tienes el problema, el codigo que yo he usado es el siguiente:

    codigo xaml:

        <StackPanel>
            <TextBox SpellCheck.IsEnabled= "True" Language= "es-PE" Name="txt_text" Height="23" />
            <Button Content="Button" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
        </StackPanel>

    y el codigo .cs que va cambiando el texto del bookmark:

        /// <summary>
        /// Lógica de interacción para MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            /// <summary>Variable para guardar el documento de interoperabilidad con word</summary>
            Microsoft.Office.Interop.Word.Document m_wordDoc = null;
            /// <summary>Variable para guardar la aplicacion de interoperabilidad con word</summary>
            Microsoft.Office.Interop.Word.Application m_word = null;
            
            /// <summary>
            /// Constructor por defecto de la clase
            /// </summary>
            public MainWindow()
            {
                InitializeComponent();
    
                // obtener la ruta del ejecutable (donde se buscara el documento de word)
                string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
    
                // crear un objeto word de aplicacion y abrir un documento
                m_word = new Microsoft.Office.Interop.Word.Application();
                m_wordDoc = m_word.Documents.Open(System.IO.Path.Combine(path, "Doc1.docx"));
    
                // hacer visible el documento
                m_word.Visible = true;
            }
    
            /// <summary>
            /// Evento ocurrido al hacer click en el boton para establecer el marcador con el texto
            /// </summary>
            /// <param name="sender">objeto remitente</param>
            /// <param name="e">argumentos del evento</param>
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                // nombre del marcador
                string bookmarkName = "marcador1";
    
                // obtener el sitio del bookmark (dependiendo de la Libreria de word es correcto alguno de los siguientes metodos)
                Microsoft.Office.Interop.Word.Range range = m_wordDoc.Bookmarks[bookmarkName].Range;
                //Microsoft.Office.Interop.Word.Range range = m_wordDoc.Bookmarks.get_Item(bookmarkName).Range;
                //Microsoft.Office.Interop.Word.Range range = m_wordDoc.Bookmarks.Item(bookmarkName).Range;
                
                // modificar el texto del marcador
                range.Text = txt_text.Text;
                // volver a añadir el bookmark (ya que este se borra si es modificado)
                m_wordDoc.Bookmarks.Add(bookmarkName, range);
            }
        }

    Para que esto funcione hay que agregar la referencia COM Microsoft.Office.Interop.Word, que en la prueba que he efectuado esta en la version 8.5 que es 'Microsoft Word 14.0 Object Library' del office 2010.

    (NOTA: hay que crear un documento de word Doc1.docx con un marcador llamado 'marcador1' y guardarlo junto al ejecutable)

    echale un vistazo a ver si es lo que buscas.


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/


    martes, 13 de noviembre de 2012 13:26
  • Hermano lo ando haciendo en .net muchas gracias por tu ayuda, en esta maquina no tengo el Microsoft.Office.Interop.Word pero llegando a mi casa lo probare y te digo , muchas gracias por ayudarme y espero que con esto pueda capturar el codigo los registros del usuario :)

    martes, 13 de noviembre de 2012 14:54
  • nada hermano :/ ando en visual y no puedo imprimir wl textbox hecho en WPF ando buscando alguna manera de agregarle ortografia a un textbox no se si sepas alguna :/
    martes, 27 de noviembre de 2012 20:45
  • Hola ceufon.

    El codigo que he puesto funciona correctamente y corrige la ortografia (bueno te indica que esta mal).

    ¿lo has probado?, ¿Que es lo que no te funciona?.


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/

    miércoles, 28 de noviembre de 2012 7:20
  • pero ando trabajando en .net hermano tu codigo en que esta hecho? se lo puedo implementar a mi sistema?
    miércoles, 28 de noviembre de 2012 14:34
  • Hola ceufon.

    .net es un framework de desarrollo, .net soporta varios lenguajes, en concreto yo he puesto el codigo en c# (lenguaje por excelencia en .net ya que esta diseñado explicitamente para ello.). Ademas el codigo es para la tecnologia WPF (que es de la que trata este foro)

    De modo que puedes crear un proyecto c# de windows para WPF e insertar ahi el codigo que he puesto.


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/

    miércoles, 28 de noviembre de 2012 15:42