[ad_1]
Hola, necesito crear un botón que se use para ocultar un objeto de etiqueta o hacer que aparezca nuevamente.
así que necesito que cuando se presione el botón se hunda como un interruptor y haga que la etiqueta desaparezca y cuando se presione nuevamente, se levante y haga que aparezca la etiqueta.
¿Alguna idea de cómo crear un botón de alternancia?
Solución 2
Puede utilizar una casilla de verificación para este propósito.
También puede usar un botón normal (pulsar), en el controlador de eventos de clic simplemente alterne el Visible
propiedad de la etiqueta:
myLabel.Visible = Not myLabel.Visible
Solución 3
Un botón de alternancia no es más que un simple botón que
pide un valor (por ejemplo, ¿este valor booleano es verdadero)?
y después de eso un simple if(boolean == true) haz esto más haz aquello
boolean boo = false; buttonPressed() { if(boo == true) { boo = false; doSomething.Visible = true; } else { boo = true; doSomething.Visible = false; } }
Solución 4
simplemente usa este código
checkBox.Appearance = System.Windows.Forms.Appearance.Button
Solución 5
¡¡¡Conseguí esto de alguna parte y funciona de maravilla!!!
1. Haga clic derecho en el proyecto en VS y seleccione ‘Agregar’ y luego ‘Control de usuario…’
2. Nombra tu nuevo archivo “Toggle.vb”
3. Pegue el código a continuación (preste ATENCIÓN al paso 4):
VB.NET
Sistema de Importaciones.Dibujo
Sistema de Importaciones.Dibujo
Importaciones System.Drawing.Drawing2D
Importaciones System.Windows.Forms
Alternar clase pública
Hereda System.Windows.Forms.UserControl
Privado _marcado como booleano
Propiedad pública marcada como booleana
Conseguir
Devolución _comprobada
Fin de obtención
Establecer (valor ByVal como booleano)
Si no está _marcado.Equals(valor) Entonces
_marcado = valor
Yo.OnCheckedChanged()
Terminara si
Conjunto final
Propiedad final
Subprotegido reemplazable OnCheckedChanged()
RaiseEvent CheckedChanged (Yo, EventArgs.Empty)
Subtítulo final
Evento público CheckedChanged (remitente ByVal como objeto, ByVal y As EventArgs)
Anulaciones protegidas Sub OnMouseClick(e As MouseEventArgs)
Yo.Comprobado = No Yo.Comprobado
Yo.Invalidar()
MiBase.OnMouseClick(e)
Subtítulo final
Anulaciones protegidas Sub OnPaint (ByVal y As PaintEventArgs)
Yo.OnPaintBackground(e)
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias
Usando ruta = New GraphicsPath()
Dim d = Relleno.Todo
Dim r = Me.Altura – 2 * d
ruta.AddArc(d, d, r, r, 90, 180)
ruta.AddArc(Me.Width – r – d, d, r, r, -90, 180)
ruta.CerrarFigura()
e.Graphics.FillPath(If(Marcado, Brushes.DarkGray, Brushes.LightGray), ruta)
r = Altura – 1
Dim rect = If(Marcado, New System.Drawing.Rectangle(Ancho – r – 1, 0, r, r), New System.Drawing.Rectangle(0, 0, r, r))
e.Graphics.FillEllipse(If(Marcado, Brushes.Green, Brushes.LightSlateGray), rect)
Finalizar el uso
Subtítulo final
Fin de clase
4. Cambie a su formulario y arrastre su control de ‘alternancia’ desde ToolBox al formulario (en algunos casos, el botón de alternancia no aparece en ToolBox inmediatamente. En ese caso, haga lo siguiente:
Ir a Herramientas > Opciones > Diseñador de Windows Forms > General
Al final de la lista encontrará Toolbox > AutoToolboxPopulate, que en una instalación nueva tiene el valor predeterminado False. Configúrelo como verdadero y luego reconstruya su solución. Los controles de usuario en su solución deben agregarse automáticamente a la caja de herramientas. Es posible que también tengas que recargar la solución.
Si su Control de usuario está en una biblioteca, puede agregarlo a su Caja de herramientas usando
Caja de herramientas -> clic derecho -> Elegir elementos -> Examinar
Seleccione su ensamblaje con el Control de Usuario.
5. El tamaño y la configuración se pueden cambiar como el control estándar
6. Los colores se pueden cambiar en el método OnPaint de Toggle Class
Código C#:
usando System.Drawing;
usando System.Drawing.Drawing2D;
usando System.Windows.Forms;
espacio de nombres Su_nombre_del_proyecto
{
Alternar clase: casilla de verificación
{
alternancia pública()
{
SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, verdadero);
Relleno = nuevo Relleno(6);
}
anulación protegida anular OnPaint (PaintEventArgs e)
{
this.OnPaintBackground(e);
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
usando (var ruta = nueva GraphicsPath())
{
var d = Relleno.Todos;
var r = this.Altura – 2 * d;
ruta.AddArc(d, d, r, r, 90, 180);
ruta.AddArc(this.Width – r – d, d, r, r, -90, 180);
ruta.CloseFigure();
e.Graphics.FillPath(¿Marcado? Brushes.DarkGray: Brushes.LightGray, ruta);
r = Altura – 1;
var rect = ¿Comprobado? nuevo System.Drawing.Rectangle(Ancho – r – 1, 0, r, r)
: nuevo System.Drawing.Rectangle(0, 0, r, r);
e.Graphics.FillEllipse(¿Marcado? Brushes.Green: Brushes.LightSlateGray, rect);
}
}
}
}
A continuación se muestra el enlace a la fuente original:
Solución 1
mira este enlace obtendrás una idea
[ad_2]
コメント