Intervalos múltiples portapapeles (6 / 9 paso)

Paso 6: Leer el texto seleccionado

Las ranuras adicionales del portapapeles se comportarán igual que el portapapeles normal: la

el usuario selecciona un texto en la ventana de código y copiar (o cortar) el texto. Esta acción copia el texto seleccionado a la memoria interna. Después de el usuario puede mover el cursor (cursor) y pegar el valor cada vez que él o ella quiere.

Para capturar el texto seleccionado debemos primero obtener la ventana de código actual. Lo hacemos mediante la creación de un nuevo método denominado GetActiveTextView(), que devuelven un objeto del tipo de datos IWpfTextView que se almacenará en el campo interno de la vista creado en el paso anterior. El código de la GetActiveTextView() es mostrar a continuación:

IWpfTextView GetActiveTextView() privado

{

Ver IWpfTextView = null;

VTextView de IVsTextView;

var txtMgr = MultiSlotClipboardPackage.thePackage.getTextManager();

txtMgr.GetActiveView (1, null, hacia fuera vTextView);

var userData = vTextView como IVsUserData;

Si (null! = datos de usuario)

{

sostenedor del objeto;

var guidViewHost = DefGuidList.guidIWpfTextViewHost;

userData.GetData (ref guidViewHost, soporte);

var viewHost = (IWpfTextViewHost) titular;

vista = viewHost.TextView;

}

volver a ver;

}

Este método comienza por definir algunas variables internas. La variable de vista se devolverá si la vista activa es la ventana de código; de lo contrario, contendrá null. La vTextView es una variable auxiliar y el txtMgr obtiene la vista actual de la clase de paquete MultiSlotClipboardPackage con el getTextManager() creado en el paso 4.

Este método que compruebe si la ventana activa es en realidad el código de ventana. Lo hacemos mediante una llamada al método GetData() de la interfaz IVsUserData. El resto del código es casting sólo la variable a la datypes correcta de manera que tenemos un objeto que representa el TextView del editor que tiene el código fuente.

Ahora que ya tenemos un método para obtener la vista de código de texto actual, necesitamos extraer el texto que está seleccionado. Lo hacemos mediante el uso de tres nuevos métodos: GetTextForPastie(), SelectionIsAvailable() y GetSelectedText().

Obtener el SelectedText

cadena estática privada GetTextForPastie(ITextView view)

{

Si (SelectionIsAvailable(view))

volver GetSelectedText(view);

otra cosa

volver "";

}

Compruebe para ver si hay texto seleccionado

privado static bool SelectionIsAvailable (ITextView vista)

{

Si (ver == null)

throw new ArgumentNullException("view");

volver! vista. Selection.IsEmpty & & vista. Selection.SelectedSpans.Count > 0;

}

Obtener el texto seleccionado actual

cadena estática privada GetSelectedText(ITextView view)

{

volver la vista. Selection.SelectedSpans[0]. GetText();

}

El método de GetTextForPastie() recibir la visión como un parámetro y compruebe si hay cualquier texto seleccionado llamando al método SelectionIsAvailable(), que devuelve un valor booleano que indica si hay cualquier texto seleccionado. Luego se obtiene el texto seleccionado dentro la GetSelectedText() que utiliza la propiedad Selection del objeto view para obtener el texto de la primera SelectedSpan. El siguiente enlace contiene la documentación de la interfaz ITextSelection, que es el tipo de datos de la propiedad de la selección.

https://msdn.Microsoft.com/en-us/library/microsoft.VisualStudio.Text.Editor.itextselection.aspx

Artículos Relacionados

Control remoto de múltiples funciones DSLR

Control remoto de múltiples funciones DSLR

Muchas cámaras DSLR pueden ser controladas remotamente usando un transmisor de infrarrojos.Generalmente son del tamaño de un llavero, cuestan entre US$ 8 (para una copia China barata) a US$ 25 (original) y permitir una prensa solo botón que activa el
Construir su propio controlador de cámara inalámbrica de múltiples funciones (¡ barato!).

Construir su propio controlador de cámara inalámbrica de múltiples funciones (¡ barato!).

Introduction¿Siempre creyó su propio controlador de cámara de la construcción?Nota importante: Condensadores para la MAX619 son 470n o 0.47u.  El esquema es correcto, pero la lista de componentes era incorrecto - actualizado.Es una entrada en el conc
Realizar IoT elegante dispositivo con SSR múltiple

Realizar IoT elegante dispositivo con SSR múltiple

Ustedes realmente no es ajeno a control AC (corriente alterna, no aire acondicionado) con el uso del sistema basado en microcontrolador. En los anteriores posts en el blog, hubo varias iteraciones de arduino sous vide; control de un SSR (rele de esta
Parpadean Leds múltiples a diferentes velocidades, 1 función, No demora

Parpadean Leds múltiples a diferentes velocidades, 1 función, No demora

En este Instructables iremos paso a paso desde el boceto de BlinkWithoutDelay estándar a una sola función que podemos recordar para cada LED que tenemos.Obligatorio:Placa ArduinoInstalado el IDE de Arduinopor lo menos 2 Leds2 resistencias de limitaci
Básico Modular múltiples marcos para bicicletas de carga - corte del laser hermético apilable cajas

Básico Modular múltiples marcos para bicicletas de carga - corte del laser hermético apilable cajas

Los marcos múltiples básicos para bicicletas de carga es el primer bloque de edificio en nuestra plataforma de código abierto Vélo M², un ecosistema donde ofrecemos la electricidad solar y energía del pedal y los planes de construir módulos a su imag
4 maneras de hacer superficies múltiples LED Throwies - Taggies

4 maneras de hacer superficies múltiples LED Throwies - Taggies

Hola todo el mundo,hoy que estoy publicando mi Instructable 20 y video de YouTube! Para ello, así que decidí rodar 4 Mini proyectos en uno y espero que te guste.La inspiración para este vino de proyecto de la llamada "throwies" que son básicamen
Cómo encontrar el área en un intervalo utilizando integrales.

Cómo encontrar el área en un intervalo utilizando integrales.

En esta instuctable, podrá aprender cómo encontrar el área bajo la curva usando integrales.Paso 1: materialesPapelLápizCalculadoraEcuación deIntervalo dePaso 2: Conocer la forma estándar para integrales.La forma estándar para integrales está en el cu
Portapapeles de smartphone

Portapapeles de smartphone

Smartphones son fantásticos para muchos usos además de es uso principal como un teléfono. Como estudiante en una conferencia, casi sin espacio para su teléfono, este portapapeles funciona fantástico! Con todas las aplicaciones disponibles, el Portapa
Portapapeles comunicación PC ↔ Pi con Python

Portapapeles comunicación PC ↔ Pi con Python

Yo normalmente uso mi frambuesa Pi en un escritorio compartido de windows. Comparto también una unidad de red con el Pi. Esto es genial, pero sigo teniendo la molestia del portapapeles en el PC no se refleja en la Pi. Puede haber aplicaciones de plat
Frambuesa PiSONE múltiples centro de entretenimiento

Frambuesa PiSONE múltiples centro de entretenimiento

tras el éxito de mi primer Instructible aquí es mi segunda! Es no 1 millón millas lejos de la máquina de arcade que he construido pero el arcade de la máquina es sólo una máquina de un jugador y sólo una tiene pantalla pequeña de una persona.Así que
Centro de Control de cohetes múltiples

Centro de Control de cohetes múltiples

como un líder de Boy Scout de mucho tiempo he encontrado un recurso inestimable. Así que aquí está mi primer intento de ayudar a la comunidad con mi primer instrucable.Esta idea nace de una frustración del año pasado. Era un maestro Scout en un curso
Múltiples entradas analógicas usando un perno de analoge

Múltiples entradas analógicas usando un perno de analoge

¡ Hola!En este instructible voy a explicar cómo leer valores de más de un sensor mediante el uso de solamente una clavija de entrada analógica.Te preguntarás por qué desea esto.Cuando se utiliza un tablero de Nodemcu, como se muestra en la imagen, un
Láser personalizado grabado portapapeles

Láser personalizado grabado portapapeles

En este Instructable, te mostraré cómo configurar un archivo de un logotipo en el material - en este caso, un portapapeles de grabado del laser personalizado!Paso 1: Mida su materialLo primero que hago al iniciar un proyecto es medir mi material. Uti
Pulsera de cuentas de cómo hacer un trenzado múltiple étnicas para el verano

Pulsera de cuentas de cómo hacer un trenzado múltiple étnicas para el verano

Hace ya tiempo pandahall diy equipo había actualizado a la última pulsera de cuentas étnica. Hoy que os traemos un nuevo estilo tibetano con cuentas de diseño de pulsera.Paso 1: Materiales en la fabricación de las pulseras abalorios étnicos trenzadas