c# - ¿Control ortográfico de.NET?
winforms spell-checking (11)
El componente uno proporciona un componente que hace esto, pero solo mientras escribe. Lo uso y es muy rápido.
Vea aquí para más información
¿Hay bibliotecas allí (preferiblemente un control de edición de texto autónomo) para .NET que tienen capacidades de revisión ortográfica. Me gustaría agregar el subrayado rojo típico a las palabras mal escritas en el área de edición de mi aplicación.
Editar: para aclarar, esto es para WinForms
FCKEditor es un buen editor de texto (basado en web). Tiene capacidades de corrección ortográfica.
No mencionó si esto era para uso basado en la web o una aplicación de escritorio, pero he usado netSpell en el pasado y tuve mucho éxito.
Infragistics tiene un control de corrector ortográfico que puede verificar la ortografía de cualquier control. No lo he usado yo mismo, pero puedes descargar una versión de prueba gratis.
RapidSpell funcionó muy bien para mí http://keyoti.com
Aspell.Net se ve bien, pero parece que ya no se mantiene. No pude hacer que funcione en mi máquina.
Después de buscar en SourceForge, encontré NHunspell , que es un puerto .Net del corrector ortográfico de OpenOffice.org. Proporciona métodos para revisar la ortografía, buscar sinónimos y guiones. Se mantiene activamente en este momento, y viene con un código de muestra fácil de entender.
En las propias palabras del proyecto:
Corrector ortográfico, hypenation y tesauro: NHunspell
NHunspell es un corrector ortográfico de código abierto gratuito para .NET Framework. El código de muestra de C # y Visual Basic está disponible para la revisión ortográfica, la separación silábica y la búsqueda de sinónimos a través del diccionario de sinónimos.
NHunspell se basa en Hunspell y trae el corrector ortográfico, la separación de sílabas y el diccionario de sinónimos de Open Office para Microsoft® .NET Framework. NHunspell es una biblioteca .NET (C #, VB) y envuelve las bibliotecas nativas Hunspell, Hyphen y MyThes.
Las bibliotecas integradas se usan en OpenOffice y funcionan con los diccionarios publicados en OpenOffice.org. Licencia
NHunspell tiene licencia en: GPL / LGPL / MPL. Se permite el uso gratuito en aplicaciones comerciales de acuerdo con las licencias LGPL y MPL. Su aplicación comercial puede enlazar con las DLL de NHunspell.
NHunspellTextBoxExtender, creado por William Winner funciona. Una vez agregado a su proyecto, se puede usar para ampliar cuadros de texto y cuadros de texto enriquecidos (cualquier control que herede TextBoxBase). El código fuente está incluido también.
http://www.codeproject.com/KB/recipes/NHunspellExtenderProvider.aspx
No es un control de línea roja , sino que: Aspell.Net es un componente de corrección de ortografía Free .NET de código abierto. Basado en el proyecto Aspell de GNU, Aspell.Net es uno de los motores de ortografía multilingües más potentes disponibles. La API está escrita en C # y se comunica a través de un contenedor C ++ alrededor del puerto Win32 de la API C de Aspell.
Repositorio de origen en sourceforge , verificado en febrero de 2010 (Tahnks, @magnifico).
Mayo de 2012, la fuente ya no es accesible ... lo siento.
Telerik tiene un control para ASP.NET.
Se puede ver el corrector ortográfico gratuito .NET basado en un cuadro de texto WPF que se puede utilizar en el lado del cliente o del servidor.
Divulgación completa ... escrita por los tuyos con ayuda del desbordamiento de la pila, por supuesto :)
****** Aplicación de Windows: puede personalizar su propio control de cuadro de texto, no necesita software de terceros ******
1-Primero abra su aplicación "Propiedades" en el explorador de soluciones, en la pestaña "Aplicación" asegúrese de que "marco de destino" esté configurado en ".Net Framework 4", NO ".Net Framework 4 Client Profile".
2 segundos Haga clic derecho en su aplicación en el explorador de soluciones y seleccione "Agregar referencia ...". Seleccione la pestaña ".NET" luego mantenga presionada la tecla control y seleccione "WindowsFormsIntegration", "System.Design", "PresentationCore", "PresentationFramework", "WindowsBase", "System.Xaml" y haga clic en "OK".
3-Third haga clic derecho en su aplicación en el explorador de soluciones y seleccione "Agregar" -> "Clase". Haz una nueva clase, puedes ponerle el nombre que quieras. Abra el código para la clase que acaba de crear y elimine el código, no el archivo.
4-Vez copia y pega el siguiente código en el archivo de clase que acabas de crear.
using System;
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Forms.Integration;
using System.Windows.Forms.Design;
[Designer(typeof(ControlDesigner))]
class SpellCheckTextbox: ElementHost
{
private TextBox box;
public SpellCheckTextbox()
{
box = new TextBox();
base.Child = box;
box.TextChanged += (sender, e) => OnTextChanged(EventArgs.Empty);
box.SpellCheck.IsEnabled = true;
box.VerticalScrollBarVisibility = ScrollBarVisibility.Hidden;
this.Size = new System.Drawing.Size(100, 200);
}
public override string Text
{
get { return box.Text; }
set { box.Text = value; }
}
[DefaultValue(true)]
public bool Multiline
{
get { return box.AcceptsReturn; }
set { box.AcceptsReturn = value; }
}
[DefaultValue(false)]
public bool ScrollBars
{
get
{
if (box.VerticalScrollBarVisibility == ScrollBarVisibility.Visible ||
box.HorizontalScrollBarVisibility == ScrollBarVisibility.Visible)
{
return true;
}
else
{
return false;
}
}
set
{
if (value)
{
box.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;
box.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible;
}
else
{
box.VerticalScrollBarVisibility = ScrollBarVisibility.Hidden;
box.HorizontalScrollBarVisibility = ScrollBarVisibility.Hidden;
}
}
}
[DefaultValue(false)]
public bool WordWrap
{
get { return box.TextWrapping != TextWrapping.NoWrap; }
set { box.TextWrapping = value ? TextWrapping.Wrap : TextWrapping.NoWrap; }
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public new System.Windows.UIElement Child
{
get { return base.Child; }
set { /* Do nothing to solve a problem with the serializer !! */ }
}
}
5- En quinto lugar, finalmente el último paso, compila el código, luego arrastra y suelta el nuevo control "SpellCheckTextbox", que se encuentra en la parte superior de la "Caja de herramientas" en la vista de diseño en tu formulario.