Hola buenas, pues estoy intentando algo tal que así:
CitarHola soy el label más guapo del mundo.
:laugh:
Se podría hacer sin WPF ni polladas de esas?
Gracias de antemano.
Un saludo.PD: Por si os sirve, solo voy a personalizar las variables no los textos... O quizas los textos también, no lo sé.
EDITO: No es posible con un Windows Form >:( ya me lo han confirmado por StackOverFlow :silbar:
Cita de: Ikillnukes en 4 Julio 2013, 21:18 PMEDITO: No es posible con un Windows Form >:( ya me lo han confirmado por StackOverFlow :silbar:
Si que es posible, pero no pinta nada fácil.
Puedes tranformar parte del label a un bitmap, luego modificas el color del bitmap, y luego dibujas ese bitmap en las coordenadas equivalentes.
No se me ocurre otra manera.
Hay muchas cosas parecidas en google... -> http://www.codeproject.com/Articles/5133/Flood-Fill-Algorithms-in-C-and-GDI
Como ya digo... esto fácil no es.
Saludos
Public Class Form1
Dim bmp As New Bitmap("c:\1.png")
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' Blanco a Rojo
' IMPORTANTE: Utilizar colores ARGB en el primer color
PictureBox1.BackgroundImage = Fill_Bitmap_Color(bmp, Color.FromArgb(255, 255, 255, 255), Color.Red)
End Sub
Private Function Fill_Bitmap_Color(ByVal Image As Bitmap, ByVal FromColor As Color, ByVal ToColor As Color)
Dim bmp As New Bitmap(Image)
Dim x As Integer = 0, y As Integer = 0
While x < bmp.Width
y = 0
While y < bmp.Height
If Image.GetPixel(x, y) = FromColor Then bmp.SetPixel(x, y, ToColor)
Math.Max(Threading.Interlocked.Increment(y), y - 1)
End While
Math.Max(Threading.Interlocked.Increment(x), x - 1)
End While
Return bmp
End Function
End Class
Ale, ya tienes media parte hecha ;)
Más sencillo, ayer ya me dieron la solución empezaron diciendo que no, pero luego vino un Pro y lo hizo con un RichTextBox, voy a mejorar el Snippet y lo mando :silbar:
Cita de: Ikillnukes en 5 Julio 2013, 11:34 AMayer ya me dieron la solución
Esa
solución es una piltrafada, a menos que sigas codeando el usercontrol para evitar que se muestre el cursor de texto y que no se le pueda clickar al RichTextBox, y también que no se aprecién las "selecciones" cuando seleccionas una parte de texto.
Saludos
Pero si estamos imitando un Label pa que queremos seleccionar texto :laugh:
Cita de: EleKtro H@cker en 5 Julio 2013, 12:18 PM
Esa solución es una piltrafada, a menos que ...
y también que no se aprecién las "selecciones" cuando seleccionas una parte de texto.
Cita de: Ikillnukes en 5 Julio 2013, 12:37 PMPero si estamos imitando un Label pa que queremos seleccionar texto :laugh:
Vamos a ver, Ikillnukes, ¿Sabes lo que es un RichTextbox?, bueno, pues para empezar...no es una etiqueta.
Intenta por entender estas dos líneas de tu snippet:
Citar rtb.SelectionStart = index
rtb.SelectionLength = rtb.TextLength - index
(http://img24.imageshack.us/img24/912/qgrz.png)
Como ves se muestra la selección del texto.
EDITO: ¿Solución?, seleccionar "0" y con longitud "0", o seleccionar el límite del texto, o diréctamente desactivar el control.
Saludos
Citaro diréctamente desactivar el control.
Entonces es por eso por lo que uso ReadOnly. :P
Cita de: Ikillnukes en 5 Julio 2013, 13:30 PMEntonces es por eso por lo que uso ReadOnly. :P
Eso no lo soluciona para nada, por algo te lo digo, el texto sigue seleccionado si no lo deseleccionas, pero bueno, si quieres tener la razón, te la doy.
Saludos
No no, pa eso uso tu code. xD
En fin... Por cierto, ya cerrando el tema has visto mi StackOverFlow de la de repu que me llevé ayer? :silbar:
xD Que bueno es saber CSS y HTML y un poco de PHP. Es la ostia los noobs que son algunos. xD Si quieres metete al Skype y charlamos.
Vale ya se a lo que te refieres, el problema es que si lo disableo no puedo cambiar el Backcolor... :silbar:
Cita de: Ikillnukes en 5 Julio 2013, 14:12 PM
xD Que bueno es saber CSS y HTML y un poco de PHP. Es la ostia los noobs que son algunos. xD Si quieres metete al Skype y charlamos
[Offtopic] No subestimar a los demás, alguien podría estar pensando lo mismo sobre ti en .NET :silbar:
Saludos
[Offtopic] Pues anda que no saber conectar una base de datos con PHP, da mucho de que hablar. Seguro que ahora me saltaréis con algo sobre mí. :P Me lo estoy temiendo. xD
PD: La verdad es que yo al principio no me entero, pero cuando me leo 3 o 4 veces lo que me decis y hago más o menos lo que pedis, pues termino enterandome, pero es que algunos de StackOverFlow, son como yo antes, lo pedían todo hecho. xD
Cita de: Ikillnukes en 5 Julio 2013, 14:12 PMVale ya se a lo que te refieres, el problema es que si lo disableo no puedo cambiar el Backcolor... :silbar:
Eso es muy contradictorio, en tu snippet original se queda un fondo transparente... ¿ahora para que quieres modificar el color de fondo?.
Bueno, pues si no quieres desactivarlo vas a tener que usar APIS para ocultar el cursor de texto (caret) del control:
CitarYou'll need to use Win32 APIs. Here's what you could do in VB:
'API declares
Private Declare Function HideCaret Lib "user32" _
(ByVal hwnd As IntPtr) As Integer
Private Declare Function ShowCaret Lib "user32" _
(ByVal hwnd As IntPtr) As Integer
'hide the caret in myTextBox
Call HideCaret(myTextBox.Handle)
'show the caret back..
Call ShowCaret(myTextBox.Handle)
and in C#
[DllImport("user32.dll", EntryPoint = "ShowCaret")]
public static extern long ShowCaret(IntPtr hwnd);
[DllImport("user32.dll", EntryPoint = "HideCaret")]
public static extern long HideCaret(IntPtr hwnd);
then make a call to
HideCaret(richtextbox.Handle)
when ever you want to hide it.
EDITO: Lo he probado y parece que no funciona.
EDITO 2: Funciona, para hacerlo funcionar hay que llamar a la función dentro de varios eventos del Richtextbox (por ejemplo MouseHover).
Saludos
Es que el control lo estoy usando dentro de un TabPage y por lo tanto pues se queda como se queda. :P
Aunque a mi me igual que puedan seleccionar el texto del RTB pues, no se, creo que aunque lo prefiera así, también me gusta que se quede un poco más profesional :silbar: