property Item.ShowAsDisabled as Boolean
Specifies whether the item is shown as disabled.

TypeDescription
Boolean A Boolean expression that specifies whether the current item is shown as disabled.
By default, the ShowAsDisabled property is False. Use the ShowAsDisabled property to shows the current item as disabled. The Enabled property specifies whether the item is enabled or disabled. The ShowAsDisabled property does not  change the Enabled property, the item acts like an enabled item. For instance, you can not highlight a disabled item, instead you can highlight an item that looks as disabled. A disabled item ( Enabled property is False) shows as grayed, and it is un-selectable, so the user can select or highlight it. An item ( Enabled property is True, ShowAsDisabled property is True ), shows as grayed, but it is selectable, so the user can select or highlight it.

How can I show the item as disabled but still be able to select or use it?

VBA (MS Access, Excell...)

With Ribbon1
	With .Items
		.Add("Item").ShowAsDisabled = True
		.Add("").ToString = "Item[showdis=1]"
	End With
	.Refresh 
End With

VB6

With Ribbon1
	With .Items
		.Add("Item").ShowAsDisabled = True
		.Add("").ToString = "Item[showdis=1]"
	End With
	.Refresh 
End With

VB.NET

With Exribbon1
	With .Items
		.Add("Item").ShowAsDisabled = True
		.Add("").ToString = "Item[showdis=1]"
	End With
	.Refresh()
End With

VB.NET for /COM

With AxRibbon1
	With .Items
		.Add("Item").ShowAsDisabled = True
		.Add("").ToString = "Item[showdis=1]"
	End With
	.Refresh()
End With

C++

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXRIBBONLib' for the library: 'ExRibbon 1.0 Control Library'

	#import <ExRibbon.dll>
	using namespace EXRIBBONLib;
*/
EXRIBBONLib::IRibbonPtr spRibbon1 = GetDlgItem(IDC_RIBBON1)->GetControlUnknown();
EXRIBBONLib::IItemsPtr var_Items = spRibbon1->GetItems();
	var_Items->Add(L"Item",vtMissing,vtMissing)->PutShowAsDisabled(VARIANT_TRUE);
	var_Items->Add(L"",vtMissing,vtMissing)->PutToString(L"Item[showdis=1]");
spRibbon1->Refresh();

C++ Builder

Exribbonlib_tlb::IItemsPtr var_Items = Ribbon1->Items;
	var_Items->Add(L"Item",TNoParam(),TNoParam())->ShowAsDisabled = true;
	var_Items->Add(L"",TNoParam(),TNoParam())->ToString = L"Item[showdis=1]";
Ribbon1->Refresh();

C#

exontrol.EXRIBBONLib.Items var_Items = exribbon1.Items;
	var_Items.Add("Item",null,null).ShowAsDisabled = true;
	var_Items.Add("",null,null).ToString = "Item[showdis=1]";
exribbon1.Refresh();

JScript/JavaScript

<BODY onload='Init()'>
<OBJECT CLASSID="clsid:DDF58CFA-750F-45E0-8A00-CFBE431702E2" id="Ribbon1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	var var_Items = Ribbon1.Items;
		var_Items.Add("Item",null,null).ShowAsDisabled = true;
		var_Items.Add("",null,null).ToString = "Item[showdis=1]";
	Ribbon1.Refresh();
}
</SCRIPT>
</BODY>

VBScript

<BODY onload='Init()'>
<OBJECT CLASSID="clsid:DDF58CFA-750F-45E0-8A00-CFBE431702E2" id="Ribbon1"></OBJECT>

<SCRIPT LANGUAGE="VBScript">
Function Init()
	With Ribbon1
		With .Items
			.Add("Item").ShowAsDisabled = True
			.Add("").ToString = "Item[showdis=1]"
		End With
		.Refresh 
	End With
End Function
</SCRIPT>
</BODY>

C# for /COM

EXRIBBONLib.Items var_Items = axRibbon1.Items;
	var_Items.Add("Item",null,null).ShowAsDisabled = true;
	var_Items.Add("",null,null).ToString = "Item[showdis=1]";
axRibbon1.Refresh();

X++ (Dynamics Ax 2009)

public void init()
{
	COM com_Item,com_Items;
	anytype var_Item,var_Items;
	;

	super();

	var_Items = exribbon1.Items(); com_Items = var_Items;
		var_Item = COM::createFromObject(com_Items.Add("Item")); com_Item = var_Item;
		com_Item.ShowAsDisabled(true);
		var_Item = COM::createFromObject(com_Items.Add("")); com_Item = var_Item;
		com_Item.ToString("Item[showdis=1]");
	exribbon1.Refresh();
}

Delphi 8 (.NET only)

with AxRibbon1 do
begin
	with Items do
	begin
		Add('Item',Nil,Nil).ShowAsDisabled := True;
		Add('',Nil,Nil).ToString := 'Item[showdis=1]';
	end;
	Refresh();
end

Delphi (standard)

with Ribbon1 do
begin
	with Items do
	begin
		Add('Item',Null,Null).ShowAsDisabled := True;
		Add('',Null,Null).ToString := 'Item[showdis=1]';
	end;
	Refresh();
end

VFP

with thisform.Ribbon1
	with .Items
		.Add("Item").ShowAsDisabled = .T.
		.Add("").ToString = "Item[showdis=1]"
	endwith
	.Refresh
endwith

dBASE Plus

local oRibbon,var_Item,var_Item1,var_Items

oRibbon = form.Activex1.nativeObject
var_Items = oRibbon.Items
	// var_Items.Add("Item").ShowAsDisabled = true
	var_Item = var_Items.Add("Item")
	with (oRibbon)
		TemplateDef = [Dim var_Item]
		TemplateDef = var_Item
		Template = [var_Item.ShowAsDisabled = true]
	endwith
	// var_Items.Add("").ToString = "Item[showdis=1]"
	var_Item1 = var_Items.Add("")
	with (oRibbon)
		TemplateDef = [Dim var_Item1]
		TemplateDef = var_Item1
		Template = [var_Item1.ToString = "Item[showdis=1]"]
	endwith
oRibbon.Refresh()

XBasic (Alpha Five)

Dim oRibbon as P
Dim var_Item as P
Dim var_Item1 as P
Dim var_Items as P

oRibbon = topparent:CONTROL_ACTIVEX1.activex
var_Items = oRibbon.Items
	' var_Items.Add("Item").ShowAsDisabled = .t.
	var_Item = var_Items.Add("Item")
	oRibbon.TemplateDef = "Dim var_Item"
	oRibbon.TemplateDef = var_Item
	oRibbon.Template = "var_Item.ShowAsDisabled = True"

	' var_Items.Add("").ToString = "Item[showdis=1]"
	var_Item1 = var_Items.Add("")
	oRibbon.TemplateDef = "Dim var_Item1"
	oRibbon.TemplateDef = var_Item1
	oRibbon.Template = "var_Item1.ToString = \"Item[showdis=1]\""

oRibbon.Refresh()

Visual Objects

local var_Items as IItems

var_Items := oDCOCX_Exontrol1:Items
	var_Items:Add("Item",nil,nil):ShowAsDisabled := true
	var_Items:Add("",nil,nil):ToString := "Item[showdis=1]"
oDCOCX_Exontrol1:Refresh()

PowerBuilder

OleObject oRibbon,var_Items

oRibbon = ole_1.Object
var_Items = oRibbon.Items
	var_Items.Add("Item").ShowAsDisabled = true
	var_Items.Add("").ToString = "Item[showdis=1]"
oRibbon.Refresh()

Visual DataFlex

Procedure OnCreate
	Forward Send OnCreate
	Variant voItems
	Get ComItems to voItems
	Handle hoItems
	Get Create (RefClass(cComItems)) to hoItems
	Set pvComObject of hoItems to voItems
		Variant voItem
		Get ComAdd of hoItems "Item" Nothing Nothing to voItem
		Handle hoItem
		Get Create (RefClass(cComItem)) to hoItem
		Set pvComObject of hoItem to voItem
			Set ComShowAsDisabled of hoItem to True
		Send Destroy to hoItem
		Variant voItem1
		Get ComAdd of hoItems "" Nothing Nothing to voItem1
		Handle hoItem1
		Get Create (RefClass(cComItem)) to hoItem1
		Set pvComObject of hoItem1 to voItem1
			Set ComToString of hoItem1 to "Item[showdis=1]"
		Send Destroy to hoItem1
	Send Destroy to hoItems
	Send ComRefresh
End_Procedure

XBase++

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oItems
	LOCAL oRibbon

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oRibbon := XbpActiveXControl():new( oForm:drawingArea )
	oRibbon:CLSID  := "Exontrol.Ribbon.1" /*{DDF58CFA-750F-45E0-8A00-CFBE431702E2}*/
	oRibbon:create(,, {10,60},{610,370} )

		oItems := oRibbon:Items()
			oItems:Add("Item"):ShowAsDisabled := .T.
			oItems:Add(""):ToString := "Item[showdis=1]"
		oRibbon:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN