¿Es posible crear un botón de alternar en C# WinForms? Sé que puede usar un control CheckBox y establecer su propiedad Apariencia en "Botón", pero no se ve bien. Quiero que aparezca hundido, no plano, cuando se lo presiona. ¿Alguna idea?ToggleButton in C# WinForms
Respuesta
Terminé anulando los eventos OnPaint y OnBackgroundPaint y dibujo manualmente el botón exactamente como lo necesito. Funcionó bastante bien.
Siempre puede codificar su propio botón con gráficos personalizados y un PictureBox, aunque no necesariamente coincidirá con el tema de Windows de sus usuarios.
Compruebe la propiedad de FlatStyle. Al establecerlo en "Sistema", la casilla de verificación se hunde en mi entorno.
Eso lo hace plano cuando la caja está desmarcada sin embargo. –
Se sube cuando no se selecciona y se hunde cuando se marca en mi máquina (Vista hecha para parecerse a Win 2000 - tema Windows Classic). –
¡Tienes razón! Accidentalmente lo tenía en Popup por el estilo. Mi error. –
También puede considerar el control ToolStripButton si no le importa alojarlo en un ToolStripContainer. Creo que puede soportar de forma nativa estados prensados y no comprimidos.
sólo puede utilizar un CheckBox
y establecer su apariencia a Button
:
CheckBox checkBox = new System.Windows.Forms.CheckBox();
checkBox.Appearance = System.Windows.Forms.Appearance.Button;
tros es una manera simple de crear botón de activación. Lo pruebo en vs2010. Es perfecto.
ToolStripButton tiene una propiedad "Comprobada" y una propiedad "CheckOnClik". Se puede utilizar para actuar como un botón de activación
tbtnCross.CheckOnClick = true;
O
tbtnCross.CheckOnClick = false;
tbtnCross.Click += new EventHandler(tbtnCross_Click);
.....
void tbtnCross_Click(object sender, EventArgs e)
{
ToolStripButton target = sender as ToolStripButton;
target.Checked = !target.Checked;
}
También, puede crear alternar lista de botones de la siguiente manera:
private void Form1_Load(object sender, EventArgs e)
{
arrToolView[0] = tbtnCross;
arrToolView[1] = tbtnLongtitude;
arrToolView[2] = tbtnTerrain;
arrToolView[3] = tbtnResult;
for (int i = 0; i<arrToolView.Length; i++)
{
arrToolView[i].CheckOnClick = false;
arrToolView[i].Click += new EventHandler(tbtnView_Click);
}
InitTree();
}
void tbtnView_Click(object sender, EventArgs e)
{
ToolStripButton target = sender as ToolStripButton;
if (target.Checked) return;
foreach (ToolStripButton btn in arrToolView)
{
btn.Checked = false;
//btn.CheckState = CheckState.Unchecked;
}
target.Checked = true;
target.CheckState = CheckState.Checked;
}
No es un control. ¿Cómo lo incrusta en la GUI? – Bitterblue
Puedes usarlo en una tira de herramientas. – legendJSLC
Cambiar un aspecto CheckBox al botón le da dificultad en los ajustes. No puede cambiar sus dimensiones porque su tamaño depende del tamaño de su texto o imagen.
Puede probar esto: (inicializar la variable de recuento primero en 1 | int cuenta = 1)
private void settingsBtn_Click(object sender, EventArgs e)
{
count++;
if (count % 2 == 0)
{
settingsPanel.Show();
}
else
{
settingsPanel.Hide();
}
}
Es muy simple, pero funciona.
Advertencia: Esto funciona bien con los botones que se utilizan de vez en cuando (la configuración es decir), el valor de recuento en int/long puede estar sobrecargado cuando se utiliza más de lo que la capacidad sin cerrar proceso de la aplicación. (Compruebe el tipo de datos varía: http://msdn.microsoft.com/en-us/library/s3f49ktz.aspx)
La Buena Nueva: Si está ejecutando una aplicación que no está destinado para uso 24/7 todo el año, creo que esto es útil. Lo importante es que cuando el proceso de la aplicación finaliza y lo ejecuta nuevamente, el recuento de se restablecerá a 1.
¿Por qué no usar una bandera booleana? 'currentlyVisible =! currentlyVisible; if (currentlyVisible) {settingsPanel.Show(); } ... ' –
O simplemente podría establecer' .AutoSize' en 'false' ... – Bob
¿Qué tal esto?
Suponiendo que tiene referencias a System.Windows.Forms.
var cbtnToggler = new CheckBox();
cbtnToggler.Appearance = Appearance.Button;
cbtnToggler.TextAlign = ContentAlignment.MiddleCenter;
cbtnToggler.MinimumSize = new Size(75, 25); //To prevent shrinkage!
Esperanza esto ayuda;)
uso si el comando para verificar el estado y dejar que funcione como un botón de activación
private void Protection_ON_OFF_Button_Click(object sender, EventArgs e)
{
if (FolderAddButton.Enabled == true)
{
FolderAddButton.Enabled = false;
}
else
{
FolderAddButton.Enabled = true;
}
}
Ésta es mis códigos simples espero que le puede ayudar a
private void button2_Click(object sender, EventArgs e)
{
if (button2.Text == "ON")
{
panel_light.BackColor = Color.Yellow; //symbolizes light turned on
button2.Text = "OFF";
}
else if (button2.Text == "OFF")
{
panel_light.BackColor = Color.Black; //symbolizes light turned off
button2.Text = "ON";
}
}
Esta no era una mala respuesta, la casilla de verificación segura puede aparecer como un botón, sin embargo las casillas de verificación tienen limitaciones (no se puede establecer un tamaño personalizado independiente de tamaño del texto), por lo que la votación ascendente. – user3800527
Bueno Jon Tackabury puede usar MetroUI Framework para usar togg botón le. Proporciona muchos otros controles que se ven diferentes UI al igual que Windows 8.
Puede intentarlo al menos una vez.
Cómo utilizar simplemente ver esto, https://www.youtube.com/watch?v=Ryxew9cgkZA
espero que esto sea útil.
- 1. Android ToggleButton
- 2. Anular ToggleButton Style
- 3. Imprimir factura C# Winforms
- 4. C# winforms: graphics.DrawImage problema
- 5. C# - Winforms - Variables globales
- 6. C# winforms combobox dynamic autocomplete
- 7. ToggleButton no muestra ningún estado
- 8. sleep-until in C#
- 9. BigInteger in C?
- 10. Skype Addon in C#
- 11. Environment.CurrentDirectory in C# .NET
- 12. Math.Cos & Math.Sin in C#
- 13. WinForms C# DataGridView force refresh
- 14. combobox valor predeterminado winforms C#
- 15. Winforms C# Outlook Style Calendar
- 16. Autoscrolling en RichTextBox C# WinForms
- 17. C# WinForms Problema del panel
- 18. Cómo poner Expander ToggleButton en la derecha
- 19. Levantar eventos personalizados en C# WinForms
- 20. ¿Hay un operador C# IN?
- 21. C++ Pixels In Console Window
- 22. C# In() método? (como Sql)
- 23. Dictionary/HashTable Object in C++?
- 24. Safe casting in Objective C
- 25. ¿Usando un ToggleButton en un widget?
- 26. uso de Android 4.0 estilo togglebutton
- 27. Interacción emergente y Togglebutton en wpf
- 28. C# WinForms Model-View-Presenter (Vista pasiva)
- 29. C# WinForms Gestión de usuarios/permisos
- 30. ¿Diseño TabPage personalizado en C# WinForms?
¿Puedes compartir el código? – Volatil3