property Ribbon.AllowToggleRadio as Boolean
Allows or prevents toggling the radio state.

TypeDescription
Boolean A Boolean expression that specifies whether the radio-buttons allow toggling its value.
By default, the AllowToggleRadio property is False. The AllowToggleRadio property on True, allows a radio button to set on zero ( unchecked ), if the user clicks twice the radio button. Usually, clicking a radio-button makes the previously checked radio-button in the same group, to be un-checked, and the newly clicked item to be checked. Now, if the AllowToggleRadio property is True, clicking again the radio-button, allows the radio-button to be un-checked, so allows a radio group to have no radio button checked. The control fires the CheckItem event once a radio-button is clicked.  The Radio property specifies whether the item displays a radio-button. The RadioGroup property specifies a group of radio-buttons.  A radio group allows a single radio-item to be checked. The Checked property specifies whether the item is checked or un-checked. The GetRadio method gets a safe array with the radio-items being checked within a radio group. Use the Background(exRadioButtonState0)/Background(exRadioButtonState1) property to specify the visual appearance of the radio-buttons in the control. Use the UseVisualTheme property to specify whether the visual appearance for the radio-buttons to be as indicated by the current XP theme.

I am using radio-buttons, the question is it possible to uncheck the radio-buttons, so no button is pressed in the group?

VBA (MS Access, Excell...)

With Ribbon1
	.AllowToggleRadio = True
	With .Items
		With .Add("Radio 1",0,1000)
			.Radio = True
			.RadioGroup = 100
		End With
		With .Add("Radio 2",0,1001)
			.Radio = True
			.RadioGroup = 100
		End With
		With .Add("Radio 2",0,1003)
			.Radio = True
			.RadioGroup = 100
		End With
	End With
	.Refresh 
End With

VB6

With Ribbon1
	.AllowToggleRadio = True
	With .Items
		With .Add("Radio 1",0,1000)
			.Radio = True
			.RadioGroup = 100
		End With
		With .Add("Radio 2",0,1001)
			.Radio = True
			.RadioGroup = 100
		End With
		With .Add("Radio 2",0,1003)
			.Radio = True
			.RadioGroup = 100
		End With
	End With
	.Refresh 
End With

VB.NET

With Exribbon1
	.AllowToggleRadio = True
	With .Items
		With .Add("Radio 1",0,1000)
			.Radio = True
			.RadioGroup = 100
		End With
		With .Add("Radio 2",0,1001)
			.Radio = True
			.RadioGroup = 100
		End With
		With .Add("Radio 2",0,1003)
			.Radio = True
			.RadioGroup = 100
		End With
	End With
	.Refresh()
End With

VB.NET for /COM

With AxRibbon1
	.AllowToggleRadio = True
	With .Items
		With .Add("Radio 1",0,1000)
			.Radio = True
			.RadioGroup = 100
		End With
		With .Add("Radio 2",0,1001)
			.Radio = True
			.RadioGroup = 100
		End With
		With .Add("Radio 2",0,1003)
			.Radio = True
			.RadioGroup = 100
		End With
	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();
spRibbon1->PutAllowToggleRadio(VARIANT_TRUE);
EXRIBBONLib::IItemsPtr var_Items = spRibbon1->GetItems();
	EXRIBBONLib::IItemPtr var_Item = var_Items->Add(L"Radio 1",long(0),long(1000));
		var_Item->PutRadio(VARIANT_TRUE);
		var_Item->PutRadioGroup(100);
	EXRIBBONLib::IItemPtr var_Item1 = var_Items->Add(L"Radio 2",long(0),long(1001));
		var_Item1->PutRadio(VARIANT_TRUE);
		var_Item1->PutRadioGroup(100);
	EXRIBBONLib::IItemPtr var_Item2 = var_Items->Add(L"Radio 2",long(0),long(1003));
		var_Item2->PutRadio(VARIANT_TRUE);
		var_Item2->PutRadioGroup(100);
spRibbon1->Refresh();

C++ Builder

Ribbon1->AllowToggleRadio = true;
Exribbonlib_tlb::IItemsPtr var_Items = Ribbon1->Items;
	Exribbonlib_tlb::IItemPtr var_Item = var_Items->Add(L"Radio 1",TVariant(0),TVariant(1000));
		var_Item->Radio = true;
		var_Item->RadioGroup = 100;
	Exribbonlib_tlb::IItemPtr var_Item1 = var_Items->Add(L"Radio 2",TVariant(0),TVariant(1001));
		var_Item1->Radio = true;
		var_Item1->RadioGroup = 100;
	Exribbonlib_tlb::IItemPtr var_Item2 = var_Items->Add(L"Radio 2",TVariant(0),TVariant(1003));
		var_Item2->Radio = true;
		var_Item2->RadioGroup = 100;
Ribbon1->Refresh();

C#

exribbon1.AllowToggleRadio = true;
exontrol.EXRIBBONLib.Items var_Items = exribbon1.Items;
	exontrol.EXRIBBONLib.Item var_Item = var_Items.Add("Radio 1",0,1000);
		var_Item.Radio = true;
		var_Item.RadioGroup = 100;
	exontrol.EXRIBBONLib.Item var_Item1 = var_Items.Add("Radio 2",0,1001);
		var_Item1.Radio = true;
		var_Item1.RadioGroup = 100;
	exontrol.EXRIBBONLib.Item var_Item2 = var_Items.Add("Radio 2",0,1003);
		var_Item2.Radio = true;
		var_Item2.RadioGroup = 100;
exribbon1.Refresh();

JScript/JavaScript

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

<SCRIPT LANGUAGE="JScript">
function Init()
{
	Ribbon1.AllowToggleRadio = true;
	var var_Items = Ribbon1.Items;
		var var_Item = var_Items.Add("Radio 1",0,1000);
			var_Item.Radio = true;
			var_Item.RadioGroup = 100;
		var var_Item1 = var_Items.Add("Radio 2",0,1001);
			var_Item1.Radio = true;
			var_Item1.RadioGroup = 100;
		var var_Item2 = var_Items.Add("Radio 2",0,1003);
			var_Item2.Radio = true;
			var_Item2.RadioGroup = 100;
	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
		.AllowToggleRadio = True
		With .Items
			With .Add("Radio 1",0,1000)
				.Radio = True
				.RadioGroup = 100
			End With
			With .Add("Radio 2",0,1001)
				.Radio = True
				.RadioGroup = 100
			End With
			With .Add("Radio 2",0,1003)
				.Radio = True
				.RadioGroup = 100
			End With
		End With
		.Refresh 
	End With
End Function
</SCRIPT>
</BODY>

C# for /COM

axRibbon1.AllowToggleRadio = true;
EXRIBBONLib.Items var_Items = axRibbon1.Items;
	EXRIBBONLib.Item var_Item = var_Items.Add("Radio 1",0,1000);
		var_Item.Radio = true;
		var_Item.RadioGroup = 100;
	EXRIBBONLib.Item var_Item1 = var_Items.Add("Radio 2",0,1001);
		var_Item1.Radio = true;
		var_Item1.RadioGroup = 100;
	EXRIBBONLib.Item var_Item2 = var_Items.Add("Radio 2",0,1003);
		var_Item2.Radio = true;
		var_Item2.RadioGroup = 100;
axRibbon1.Refresh();

X++ (Dynamics Ax 2009)

public void init()
{
	COM com_Item,com_Item1,com_Item2,com_Items;
	anytype var_Item,var_Item1,var_Item2,var_Items;
	;

	super();

	exribbon1.AllowToggleRadio(true);
	var_Items = exribbon1.Items(); com_Items = var_Items;
		var_Item = com_Items.Add("Radio 1",COMVariant::createFromInt(0),COMVariant::createFromInt(1000)); com_Item = var_Item;
			com_Item.Radio(true);
			com_Item.RadioGroup(100);
		var_Item1 = com_Items.Add("Radio 2",COMVariant::createFromInt(0),COMVariant::createFromInt(1001)); com_Item1 = var_Item1;
			com_Item1.Radio(true);
			com_Item1.RadioGroup(100);
		var_Item2 = com_Items.Add("Radio 2",COMVariant::createFromInt(0),COMVariant::createFromInt(1003)); com_Item2 = var_Item2;
			com_Item2.Radio(true);
			com_Item2.RadioGroup(100);
	exribbon1.Refresh();
}

Delphi 8 (.NET only)

with AxRibbon1 do
begin
	AllowToggleRadio := True;
	with Items do
	begin
		with Add('Radio 1',TObject(0),TObject(1000)) do
		begin
			Radio := True;
			RadioGroup := 100;
		end;
		with Add('Radio 2',TObject(0),TObject(1001)) do
		begin
			Radio := True;
			RadioGroup := 100;
		end;
		with Add('Radio 2',TObject(0),TObject(1003)) do
		begin
			Radio := True;
			RadioGroup := 100;
		end;
	end;
	Refresh();
end

Delphi (standard)

with Ribbon1 do
begin
	AllowToggleRadio := True;
	with Items do
	begin
		with Add('Radio 1',OleVariant(0),OleVariant(1000)) do
		begin
			Radio := True;
			RadioGroup := 100;
		end;
		with Add('Radio 2',OleVariant(0),OleVariant(1001)) do
		begin
			Radio := True;
			RadioGroup := 100;
		end;
		with Add('Radio 2',OleVariant(0),OleVariant(1003)) do
		begin
			Radio := True;
			RadioGroup := 100;
		end;
	end;
	Refresh();
end

VFP

with thisform.Ribbon1
	.AllowToggleRadio = .T.
	with .Items
		with .Add("Radio 1",0,1000)
			.Radio = .T.
			.RadioGroup = 100
		endwith
		with .Add("Radio 2",0,1001)
			.Radio = .T.
			.RadioGroup = 100
		endwith
		with .Add("Radio 2",0,1003)
			.Radio = .T.
			.RadioGroup = 100
		endwith
	endwith
	.Refresh
endwith

dBASE Plus

local oRibbon,var_Item,var_Item1,var_Item2,var_Items

oRibbon = form.Activex1.nativeObject
oRibbon.AllowToggleRadio = true
var_Items = oRibbon.Items
	var_Item = var_Items.Add("Radio 1",0,1000)
		var_Item.Radio = true
		var_Item.RadioGroup = 100
	var_Item1 = var_Items.Add("Radio 2",0,1001)
		var_Item1.Radio = true
		var_Item1.RadioGroup = 100
	var_Item2 = var_Items.Add("Radio 2",0,1003)
		var_Item2.Radio = true
		var_Item2.RadioGroup = 100
oRibbon.Refresh()

XBasic (Alpha Five)

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

oRibbon = topparent:CONTROL_ACTIVEX1.activex
oRibbon.AllowToggleRadio = .t.
var_Items = oRibbon.Items
	var_Item = var_Items.Add("Radio 1",0,1000)
		var_Item.Radio = .t.
		var_Item.RadioGroup = 100
	var_Item1 = var_Items.Add("Radio 2",0,1001)
		var_Item1.Radio = .t.
		var_Item1.RadioGroup = 100
	var_Item2 = var_Items.Add("Radio 2",0,1003)
		var_Item2.Radio = .t.
		var_Item2.RadioGroup = 100
oRibbon.Refresh()

Visual Objects

local var_Item,var_Item1,var_Item2 as IItem
local var_Items as IItems

oDCOCX_Exontrol1:AllowToggleRadio := true
var_Items := oDCOCX_Exontrol1:Items
	var_Item := var_Items:Add("Radio 1",0,1000)
		var_Item:Radio := true
		var_Item:RadioGroup := 100
	var_Item1 := var_Items:Add("Radio 2",0,1001)
		var_Item1:Radio := true
		var_Item1:RadioGroup := 100
	var_Item2 := var_Items:Add("Radio 2",0,1003)
		var_Item2:Radio := true
		var_Item2:RadioGroup := 100
oDCOCX_Exontrol1:Refresh()

PowerBuilder

OleObject oRibbon,var_Item,var_Item1,var_Item2,var_Items

oRibbon = ole_1.Object
oRibbon.AllowToggleRadio = true
var_Items = oRibbon.Items
	var_Item = var_Items.Add("Radio 1",0,1000)
		var_Item.Radio = true
		var_Item.RadioGroup = 100
	var_Item1 = var_Items.Add("Radio 2",0,1001)
		var_Item1.Radio = true
		var_Item1.RadioGroup = 100
	var_Item2 = var_Items.Add("Radio 2",0,1003)
		var_Item2.Radio = true
		var_Item2.RadioGroup = 100
oRibbon.Refresh()

Visual DataFlex

Procedure OnCreate
	Forward Send OnCreate
	Set ComAllowToggleRadio to True
	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 "Radio 1" 0 1000 to voItem
		Handle hoItem
		Get Create (RefClass(cComItem)) to hoItem
		Set pvComObject of hoItem to voItem
			Set ComRadio of hoItem to True
			Set ComRadioGroup of hoItem to 100
		Send Destroy to hoItem
		Variant voItem1
		Get ComAdd of hoItems "Radio 2" 0 1001 to voItem1
		Handle hoItem1
		Get Create (RefClass(cComItem)) to hoItem1
		Set pvComObject of hoItem1 to voItem1
			Set ComRadio of hoItem1 to True
			Set ComRadioGroup of hoItem1 to 100
		Send Destroy to hoItem1
		Variant voItem2
		Get ComAdd of hoItems "Radio 2" 0 1003 to voItem2
		Handle hoItem2
		Get Create (RefClass(cComItem)) to hoItem2
		Set pvComObject of hoItem2 to voItem2
			Set ComRadio of hoItem2 to True
			Set ComRadioGroup of hoItem2 to 100
		Send Destroy to hoItem2
	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 oItem,oItem1,oItem2
	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} )

		oRibbon:AllowToggleRadio := .T.
		oItems := oRibbon:Items()
			oItem := oItems:Add("Radio 1",0,1000)
				oItem:Radio := .T.
				oItem:RadioGroup := 100
			oItem1 := oItems:Add("Radio 2",0,1001)
				oItem1:Radio := .T.
				oItem1:RadioGroup := 100
			oItem2 := oItems:Add("Radio 2",0,1003)
				oItem2:Radio := .T.
				oItem2:RadioGroup := 100
		oRibbon:Refresh()

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