Estoy mostrando una lista de botones, algunos de los cuales pueden estar deshabilitados. Necesito mostrar una información sobre herramientas en los botones desactivados con una explicación de por qué está deshabilitada, pero parece que no puedo deshabilitar el botón sin desactivar la información sobre herramientas. ¿Hay una forma simple de evitar esto?cómo mostrar una información sobre herramientas en un control deshabilitado?
Respuesta
Deberá utilizar la clase ToolTipManager
para crear y destruir las sugerencias de herramienta manualmente.
En este artículo se le debe dar toda la información que necesita para lograr esto:
http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf60d65-7ff6.html
Consideré usar ToolTipManager en mi solución, pero esto fue difícil porque el botón de chispa no despacha los eventos del mouse cuando está deshabilitado, por lo que tendría que usar otra forma de detectar cuando el usuario está sobre el botón. La solución más simple que encontré fue simplemente crear botones invisibles adicionales sobre los botones desactivados y usar su comportamiento incorporado en la información sobre herramientas. No es ideal, lo sé. – geo
Está en lo cierto, el botón de chispa no provoca eventos de mouse cuando está deshabilitado, a pesar de indicar explícitamente que lo hace en la documentación. ¿Eres capaz de usar un botón Halo como alternativa? (A menos que esté haciendo un destello funky, supongo) He presentado un informe de error con Adobe sobre la documentación del botón Spark. –
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.managers.ToolTipManager;
import mx.controls.ToolTip;
private var tooltip:ToolTip;
private var p:Point;
private function whyDisable():void
{
//calculate the button position , so that roll over shows the tooltip
p=new Point();
p=localToGlobal(new Point(btn.x,btn.y));
if(btn.enabled==false)
tooltip = ToolTipManager.createToolTip('Button is disabled',p.x+(btn.width/2),p.y-20,'errorTipAbove') as ToolTip;
else
tooltip=ToolTipManager.createToolTip('Button is enabled',p.x+(btn.width/2),p.y-20,'errorTipAbove') as ToolTip;
}
]]>
</mx:Script>
<mx:VBox height="100%" width="100%" horizontalAlign="center" verticalAlign="middle">
<mx:Button id="btn" label="Show Tooltip" buttonDown="trace('ankur')" autoRepeat="true" enabled="true" rollOver="whyDisable();" rollOut="{ToolTipManager.destroyToolTip(tooltip);}"/>
</mx:VBox>
</mx:Application>
Hola, esta aplicación funciona con el botón discapacitados, solía ToolTipManager a ello,
i espero que esto funcione para usted
tienen un tiempo gr8
Ankur Sharma
gracias por el ejemplo, desafortunadamente estoy usando la clase spark.components.Button, que establece mouseEnabled y mouseChildren en false cuando está habilitado se establece en falso. Esto significa que no puedo usar eventos de renovación. – geo
Ajuste el botón en un grupo y en su lugar, aplique la información sobre herramientas al grupo.
<s:Group toolTip="My toolTip">
<s:Button enabled="false"/>
</s:Group>
Es un poco feo, pero funciona.
Una forma de hacer esto es anular el getter y setter habilitados para hacer lo que desee. Entonces, en mi caso, todavía quería que la mayoría de los eventos de mouse se dispararan, pero no el evento click.
<?xml version="1.0" encoding="utf-8"?>
<s:Button buttonMode="true" click="handleClick(event)" xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script>
<![CDATA[
public var data:Object;
private var _enabled:Boolean = true;
public override function get enabled():Boolean
{
return _enabled;
}
public override function set enabled(value:Boolean):void
{
_enabled = value;
invalidateDisplayList();
dispatchEvent(new Event("enabledChanged"));
invalidateSkinState();
}
protected function handleClick(event:MouseEvent):void
{
if (!_enabled)
{
event.stopPropagation();
}
}
]]>
</fx:Script>
</s:Button>
Dado que los eventos del mouse ahora se activan, la información sobre herramientas vuelve a funcionar.
La mejor opción para mí fue poner una etiqueta vacía alrededor y delante del elemento. Luego, si es necesario, configuro el elemento para deshabilitar y la información sobre herramientas funciona en la etiqueta. Si no, puse la etiqueta enviada para atrás. Funciona bastante bien
if (new MainListsAdmin(this.mainApp).temInvestimentoComAqueleTipo(t)) {
deletarGroupInto.setTooltip(new Tooltip("Há investimentos vinculados a Tipo de Investimento.\nDeleção bloqueada."));
this.deletarButton.setDisable(true);
}else{
deletarGroupInto.toBack();
}
- 1. Mostrar información sobre herramientas sobre un control deshabilitado
- 2. C# Mostrar una información sobre herramientas en el cuadro de texto deshabilitado (Formulario)
- 3. C#: ¿Cómo agrego una información sobre herramientas a un control?
- 4. Mostrar información sobre herramientas en el mouse sobre un texto
- 5. Cómo mostrar una información sobre herramientas de .NET Balloon?
- 6. Mostrar una información sobre herramientas en un ToolStripItem no enfocado
- 7. wpf: cómo mostrar información sobre herramientas cuando el botón está deshabilitado por comando?
- 8. ¿Puedo mostrar información sobre herramientas para un botón de comando deshabilitado en las caras principales?
- 9. Cómo mostrar información sobre herramientas en MS Chart
- 10. Cómo mostrar información sobre herramientas en el gráfico circular jqplot
- 11. ¿cómo puedo mostrar información sobre herramientas o información sobre el elemento al pasar el mouse?
- 12. Programar mostrar información sobre herramientas después de una llamada ajax
- 13. Mostrar una información sobre herramientas sobre una celda en una JTable
- 14. ¿Cómo especificar una información sobre herramientas para un control en un estilo de XAML?
- 15. Mostrar información sobre herramientas para series invisibles en Highcharts
- 16. Mostrar una información sobre herramientas sobre un botón usando Windows Forms
- 17. Información sobre herramientas sobre un polígono en Google Maps
- 18. ¿Cómo agregar una información sobre herramientas a un gráfico svg?
- 19. ¿Cómo puedo mostrar una información sobre herramientas que muestra el valor de un control deslizable en WinForms
- 20. Cómo agregar información sobre herramientas a jqgrid
- 21. Información sobre herramientas en una imagen
- 22. JQuery JSTree: agregue una información sobre herramientas
- 23. Cómo agregar información sobre herramientas a td en una tabla
- 24. Cómo crear una útil información sobre herramientas en Android
- 25. Atajo de teclado VS2010 - Mostrar información sobre herramientas
- 26. Información sobre herramientas en paneles
- 27. información sobre herramientas vacía tema
- 28. Cómo mostrar una información sobre herramientas con un clic del mouse
- 29. Crear información sobre herramientas para UserControl personalizado
- 30. ¿Cómo elimino una información sobre herramientas vinculada actualmente a un control?
Estoy usando la clase spark.components.Button – geo
¿Has resuelto esto? – zinovii