Añadir función ''insertar imagen''
-
domingo, 31 de enero de 2010 22:07Hola, tengo VS2008 Professional y quisiera saber cómo insertar un formulario de inserción de imagen en un editor de texto (por ejemplo) que yo crease en Visual Basic o en C# (explíqueme cómo debo hacer lo que les pregunto en cada uno de estos lenguajes: VB y C#).Es decir, para que yo pueda crear una opción/función de ''Insertar imagen''.
Ángel Manuel
Todas las respuestas
-
domingo, 31 de enero de 2010 22:16Moderadorhola
ese editor de texto que mencionas con que control lo estas desarrollando ?
sera quizas el RichTextBox
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
lunes, 01 de febrero de 2010 10:01Igual que hay controles en Visual Studio para abrir y guardar archivos, o modificar fuente,cómo asignar un control de inserción de imagen. (por si creare un editor de texto tipo WOrdPad)
Ángel Manuel -
lunes, 01 de febrero de 2010 12:21Moderador:-)
Hola,
No es sencillo personalizar el diálogo de Abrir archivo, pero puede hacerse. Aquí tienes una forma:
http://www.codeproject.com/KB/dialog/OpenFileDialogEx.aspx
La otra es crearte tu propio formulario, que muestre una lista de los ficheros de una carpeta y un pictureBox para previsualizar el fichero.
Saludos,No olvides marcar la respuesta como correcta si te ha sido de utilidad :-)
[MS-MVP-MCTS] Mi Perfil MVP en: https://mvp.support.microsoft.com/profile/Lluis
NUG: http://andorradotnet.com
Web: http://www.ordeeno.com
Blog: http://msmvps.com/blogs/lfranco
Geeks: http://geeks.ms/blogs/lfranco
-
lunes, 01 de febrero de 2010 14:10
-
lunes, 01 de febrero de 2010 14:44Moderador:-)
Hola Angel,
Es que este cuadro de diálogo que nos muestras es un OpenFileDialog con el título cambiado y con un filtro que sólo permite seleccionar imágenes. Si le sumas que se abre por defecto en la carpeta de imágenes del usuario... tachán! Ya tienes un cuadro de diágolo para seleccionar imágenes.
Saludos,No olvides marcar la respuesta como correcta si te ha sido de utilidad :-)
[MS-MVP-MCTS] Mi Perfil MVP en: https://mvp.support.microsoft.com/profile/Lluis
NUG: http://andorradotnet.com
Web: http://www.ordeeno.com
Blog: http://msmvps.com/blogs/lfranco
Geeks: http://geeks.ms/blogs/lfranco
-
lunes, 01 de febrero de 2010 14:48Pues explíqueme por favor qué hacer para que éste sólo permita seleccionar imágenes e insertarlas. Dígame cómo hacerlo en Visual C# y en Visual Basic, (o si se hace en ambos lenguajes de la misma manera)
Ángel Manuel -
lunes, 01 de febrero de 2010 15:26Moderadorhola
por ahi algo como esto sea de utilidad
Customizing OpenFileDialog in .NET
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
lunes, 01 de febrero de 2010 15:34Moderador:-)))
Leandro... que es el mismo enlace que le he pasado antes, jejeje.
No te preocupes, ya le estoy preparando un ejemplo... ahora lo publico.No olvides marcar la respuesta como correcta si te ha sido de utilidad :-)
[MS-MVP-MCTS] Mi Perfil MVP en: https://mvp.support.microsoft.com/profile/Lluis
NUG: http://andorradotnet.com
Web: http://www.ordeeno.com
Blog: http://msmvps.com/blogs/lfranco
Geeks: http://geeks.ms/blogs/lfranco
-
lunes, 01 de febrero de 2010 15:40Moderador
:-)
Hola,
Prueba este código:
private void button1_Click(object sender, EventArgs e) { openFileDialog.Filter = "Sólo imágenes|*.jpg;*.pgn;*.gif"; openFileDialog.Title = "Selecciona una imágen"; openFileDialog.InitialDirectory = Environment.GetFolderPath( Environment.SpecialFolder.MyPictures); if (openFileDialog.ShowDialog() == DialogResult.OK) { this.BackgroundImage = Image.FromFile(openFileDialog.FileName); } }Observa que se establece el filtro del diálogo, el título y la carpeta inicial. El resto es comprobar si se ha seleccionado una imágen y cargarla en el form.
Saludos,No olvides marcar la respuesta como correcta si te ha sido de utilidad :-)
[MS-MVP-MCTS] Mi Perfil MVP en: https://mvp.support.microsoft.com/profile/Lluis
NUG: http://andorradotnet.com
Web: http://www.ordeeno.com
Blog: http://msmvps.com/blogs/lfranco
Geeks: http://geeks.ms/blogs/lfranco
-
lunes, 01 de febrero de 2010 15:40Moderadorhola
uuhh si, disculpa no habia visto que ya habias recomendado ese link
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
lunes, 01 de febrero de 2010 16:02He empleado ese código en un proyecto C# con un RichTextBox, y un MenuStrip, y el usuario puede hacer clic en el acceso al formulario de imagen, pero selecciona la imagen y no se inserta. (¿entonces como desarrollan Word, WordPad u OpenOffice?)
Ángel Manuel -
lunes, 01 de febrero de 2010 16:27Moderador
:-)
Hola de nuevo,
El código que te he pasado lo que hace es obtener la ruta a una imagen de una caprpeta, y luego la carga en el fondo del formulario. Si lo que quieres es insertarla en un RichTextBox debes hacer lo siguiente:
public const uint WM_PASTE = 0x302; [System.Runtime.InteropServices.DllImport("user32.dll")] public static extern int SendMessage( int hWnd, uint Msg, long wParam, long lParam); private void insertPictureInRichTextBox(RichTextBox RTB, Image Picture) { Clipboard.SetDataObject(Picture); DataFormats.Format myFormat = DataFormats.GetFormat (DataFormats.Bitmap); if (RTB.CanPaste(myFormat)) { RTB.Paste(myFormat); } else { MessageBox.Show("Formato incorrecto!"); } }Y llamar a la función de este modo:
private void button1_Click(object sender, EventArgs e) { openFileDialog.Filter = "Sólo imágenes|*.jpg;*.pgn;*.gif"; openFileDialog.Title = "Selecciona una imágen"; openFileDialog.InitialDirectory = Environment.GetFolderPath( Environment.SpecialFolder.MyPictures); if (openFileDialog.ShowDialog() == DialogResult.OK) { insertPictureInRichTextBox(richTextBox1, Image.FromFile(openFileDialog.FileName)); } }
Por cierto, para el desarrollo de Word y las demás aplicaciones que comentas no se utiliza este control. Es demasiado sencillo. Existen en el mercado otros controles de edición de texto para Windows / Web.
Nota: El código está en C# pero puedes convertirlo a VB mediante cualquier conversor de los muchos que existen.
Saludos,No olvides marcar la respuesta como correcta si te ha sido de utilidad :-)
[MS-MVP-MCTS] Mi Perfil MVP en: https://mvp.support.microsoft.com/profile/Lluis
NUG: http://andorradotnet.com
Web: http://www.ordeeno.com
Blog: http://msmvps.com/blogs/lfranco
Geeks: http://geeks.ms/blogs/lfranco
- Marcado como respuesta Ángel Manuel García Carmona martes, 02 de febrero de 2010 14:43
-
martes, 02 de febrero de 2010 14:46
:-)
Hola de nuevo,
El código que te he pasado lo que hace es obtener la ruta a una imagen de una caprpeta, y luego la carga en el fondo del formulario. Si lo que quieres es insertarla en un RichTextBox debes hacer lo siguiente:
Y llamar a la función de este modo:public const uint WM_PASTE = 0x302; [System.Runtime.InteropServices.DllImport("user32.dll")] public static extern int SendMessage( int hWnd, uint Msg, long wParam, long lParam); private void insertPictureInRichTextBox(RichTextBox RTB, Image Picture) { Clipboard.SetDataObject(Picture); DataFormats.Format myFormat = DataFormats.GetFormat (DataFormats.Bitmap); if (RTB.CanPaste(myFormat)) { RTB.Paste(myFormat); } else { MessageBox.Show("Formato incorrecto!"); } }
private void button1_Click(object sender, EventArgs e) { openFileDialog.Filter = "Sólo imágenes|*.jpg;*.pgn;*.gif"; openFileDialog.Title = "Selecciona una imágen"; openFileDialog.InitialDirectory = Environment.GetFolderPath( Environment.SpecialFolder.MyPictures); if (openFileDialog.ShowDialog() == DialogResult.OK) { insertPictureInRichTextBox(richTextBox1, Image.FromFile(openFileDialog.FileName)); } }
Por cierto, para el desarrollo de Word y las demás aplicaciones que comentas no se utiliza este control. Es demasiado sencillo. Existen en el mercado otros controles de edición de texto para Windows / Web.
Nota: El código está en C# pero puedes convertirlo a VB mediante cualquier conversor de los muchos que existen.
Saludos,
No olvides marcar la respuesta como correcta si te ha sido de utilidad :-)
[MS-MVP-MCTS] Mi Perfil MVP en: https://mvp.support.microsoft.com/profile/Lluis
NUG: http://andorradotnet.com
Web: http://www.ordeeno.com
Blog: http://msmvps.com/blogs/lfranco
Geeks: http://geeks.ms/blogs/lfranco
¿Y de qué sitios podría bajar yo otros controles de edición de texto de los que vd. me habla?
He insertado la imagen, pero cuando se reduce, se estropea la calidad.
public const uint WM_PASTE = 0x302; [System.Runtime.InteropServices.DllImport("user32.dll")] public static extern int SendMessage( int hWnd, uint Msg, long wParam, long lParam); private void insertPictureInRichTextBox(RichTextBox RTB, Image Picture) { Clipboard.SetDataObject(Picture); DataFormats.Format myFormat = DataFormats.GetFormat (DataFormats.Bitmap); if (RTB.CanPaste(myFormat)) { RTB.Paste(myFormat); } else { MessageBox.Show("Formato incorrecto!"); } }En este blóque de código, que le muestro, podría cambiar ''Bitmap'' (en la 10 linea) por lo relacionado a los formatos PNG y JPG.
Ángel Manuel -
miércoles, 03 de febrero de 2010 18:26Pero en ese mismo bloque de código, qué debo insertar para cambiar "Bitmap" por PNG, digo lo que reemplace a dicha palabra.
Ángel Manuel -
viernes, 05 de febrero de 2010 12:18
public const uint WM_PASTE = 0x302; [System.Runtime.InteropServices.DllImport("user32.dll")] public static extern int SendMessage( int hWnd, uint Msg, long wParam, long lParam); private void insertPictureInRichTextBox(RichTextBox RTB, Image Picture) { Clipboard.SetDataObject(Picture); DataFormats.Format myFormat = DataFormats.GetFormat (DataFormats.Bitmap); if (RTB.CanPaste(myFormat)) { RTB.Paste(myFormat); } else { MessageBox.Show("Formato incorrecto!"); } }Quiero saber qué debo hacer para que en este bloque de código, pueda cambiar ''bitmap'' a ''PNG'' (mejor dicho lo que debería escribir) y segundo, qué debería de hacer y en cuál de los 2 bloques de código para que al insertarse la imagen, apareciera en unas dimensiones definidas por mi y no las originales del archivo.
Ángel Manuel -
jueves, 11 de agosto de 2011 12:08
Gracias Lius franco me a valido mucho.
Sabrias decirme como se imprime un listBox.
De casiti MUCHAS GRACIAS
-
martes, 07 de agosto de 2012 21:14
geniooooooooooo!!!!! "
this.BackgroundImage = Image.FromFile(openFileDialog.FileName);"
me salvasteee!!!!!
juan mejia


