diff --git a/TelegramBotBase/Base/FormBase.cs b/TelegramBotBase/Base/FormBase.cs
index a995eb4..f4ae896 100644
--- a/TelegramBotBase/Base/FormBase.cs
+++ b/TelegramBotBase/Base/FormBase.cs
@@ -180,7 +180,7 @@ namespace TelegramBotBase.Form
///
///
///
- public async Task LoadControls(MessageResult message)
+ public virtual async Task LoadControls(MessageResult message)
{
//Looking for the control by id, if not listened, raise event for all
if (message.RawData?.StartsWith("#c") ?? false)
@@ -228,7 +228,7 @@ namespace TelegramBotBase.Form
///
///
///
- public async Task ActionControls(MessageResult message)
+ public virtual async Task ActionControls(MessageResult message)
{
//Looking for the control by id, if not listened, raise event for all
if (message.RawData.StartsWith("#c"))
@@ -278,7 +278,7 @@ namespace TelegramBotBase.Form
///
///
///
- public async Task RenderControls(MessageResult message)
+ public virtual async Task RenderControls(MessageResult message)
{
foreach (var b in this.Controls)
{
@@ -400,6 +400,10 @@ namespace TelegramBotBase.Form
///
public void AddControl(ControlBase control)
{
+ //Duplicate check
+ if (this.Controls.Contains(control))
+ throw new ArgumentException("Control has been already added.");
+
control.ID = this.Controls.Count + 1;
control.Device = this.Device;
this.Controls.Add(control);