I have the following code. I am getting an error that states \"unexpected prepro
ID: 3680423 • Letter: I
Question
I have the following code. I am getting an error that states "unexpected preprocessor directive". The issue seems to be regarding #endregion
Please advise.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Reminder
{
public class FrmReminder : System.Windows.Forms.Form
{
private System.Windows.Forms.Label lblTime;
private DateTimePicker dtpTime;
private System.Windows.Forms.Label lblReminder;
private System.Windows.Forms.TextBox txtReminder;
private System.Windows.Forms.Button btnSetTime;
private System.Windows.Forms.Button btnReset;
private System.Windows.Forms.Timer tmrReminder;
private System.ComponentModel.IContainer components;
public FrmReminder()
{
InitializeComponent();
}
protected override void Dispose(bool disposing)
{
if(disposing)
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.lblTime = new System.Windows.Forms.Label();
this.btnSetTime = new System.Windows.Forms.Button();
this.btnReset = new System.Windows.Forms.Button();
this.tmrReminder = new System.Windows.Forms.Timer(this.components);
this.lblReminder = new System.Windows.Forms.Label();
this.txtReminder = new System.Windows.Forms.TextBox();
this.dtpTime = new System.Windows.Forms.DateTimePicker();
this.SuspendLayout();
this.lblTime.Location = new System.Drawing.Point(10, 16);
this.lblTime.Name = "lblTime";
this.lblTime.Size = new System.Drawing.Size(48, 16);
this.lblTime.TabIndex = 15;
this.lblTime.Text = "Time:";
this.lblTime.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnSetTime.Location = new System.Drawing.Point(176, 16);
this.btnSetTime.Name = "btnSetTime";
this.btnSetTime.Size = new System.Drawing.Size(48, 23);
this.btnSetTime.TabIndex = 16;
this.btnSetTime.Text = "Set";
this.btnSetTime.Click += new System.EventHandler(this.btnSetTime_Click);
this.btnReset.Enabled = false;
this.btnReset.Location = new System.Drawing.Point(240, 16);
this.btnReset.Name = "btnReset";
this.btnReset.Size = new System.Drawing.Size(48, 24);
this.btnReset.TabIndex = 17;
this.btnReset.Text = "Reset";
this.btnReset.Click += new System.EventHandler(this.btnReset_Click);
this.tmrReminder.Enabled = true;
this.tmrReminder.Interval = 1000;
this.tmrReminder.Tick += new System.EventHandler(this.tmrReminder_Tick);
this.lblReminder.Location = new System.Drawing.Point(10, 56);
this.lblReminder.Name = "lblReminder";
this.lblReminder.Size = new System.Drawing.Size(62, 23);
this.lblReminder.TabIndex = 19;
this.lblReminder.Text = "Reminder:";
this.lblReminder.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.txtReminder.Location = new System.Drawing.Point(80, 56);
this.txtReminder.Name = "txtReminder";
this.txtReminder.Size = new System.Drawing.Size(208, 21);
this.txtReminder.TabIndex = 20;
this.dtpTime.CustomFormat = "hh:mm tt";
this.dtpTime.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.dtpTime.Location = new System.Drawing.Point(64, 16);
this.dtpTime.Name = "dtpTime";
this.dtpTime.ShowUpDown = true;
this.dtpTime.Size = new System.Drawing.Size(80, 21);
this.dtpTime.TabIndex = 21;
this.AutoScaleBaseSize = new System.Drawing.Size(5, 14);
this.ClientSize = new System.Drawing.Size(304, 93);
this.Controls.Add(this.dtpTime);
this.Controls.Add(this.txtReminder);
this.Controls.Add(this.lblReminder);
this.Controls.Add(this.btnReset);
this.Controls.Add(this.btnSetTime);
this.Controls.Add(this.lblTime);
this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Name = "FrmReminder";
this.Text = "Pop-Up Reminder";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
[STAThread]
static void Main()
{
Application.Run( new FrmReminder() );
}
private void btnSetTime_Click(object sender, EventArgs e)
{
btnSetTime.Enabled = false; //disable set button
txtReminder.Enabled = false; //disable textbox reminder
dtpTime.Enabled = false; // disable datetime picker
btnReset.Enabled = true; // enable reset button
}
private void tmrReminder_Tick(
object sender, EventArgs e)
{
//declare variables
DateTimePicker dtpTime = new DateTimePicker();
DateTime dtmCurrentTime = DateTime.Now;
if (dtpTime.Value == dtmCurrentTime &&
dtpTime.Enabled == false)
{
MessageBox.Show(txtReminder.Text,
"Reminder", MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
}
}
private void btnReset_Click(object sender, EventArgs e)
{
btnSetTime.Enabled = true; //enables set Button
txtReminder.Enabled = true; //enables Reminder textbox
dtpTime.Enabled = true; // enables DateTime Picker
btnReset.Enabled = false; //disables the Reset Button
}
}
}
Explanation / Answer
The error occurs because you use #endregion without #region. Let understand it with definition whenever you indicate a block code with a name then you indicate it with a name and continue the entire block of code between #region and #endregion. Similarly here you have to apply. I am commenting it in the code. (Optional according to me if the code not work properly after removing the error then you have to put code given below in the code where I comment if ( (dtpTime-DateTime.Now).TotalSeconds < 1 ) {.… })
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Reminder
{
public class FrmReminder : System.Windows.Forms.Form
{
private System.Windows.Forms.Label lblTime;
private DateTimePicker dtpTime;
private System.Windows.Forms.Label lblReminder;
private System.Windows.Forms.TextBox txtReminder;
private System.Windows.Forms.Button btnSetTime;
private System.Windows.Forms.Button btnReset;
private System.Windows.Forms.Timer tmrReminder;
private System.ComponentModel.IContainer components;
public FrmReminder()
{
InitializeComponent();
}
protected override void Dispose(bool disposing)
{
if(disposing)
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose(disposing);
}
#region //YOU HAVE TO PUT #REGION TO REMOVE THE ERROR//
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.lblTime = new System.Windows.Forms.Label();
this.btnSetTime = new System.Windows.Forms.Button();
this.btnReset = new System.Windows.Forms.Button();
this.tmrReminder = new System.Windows.Forms.Timer(this.components);
this.lblReminder = new System.Windows.Forms.Label();
this.txtReminder = new System.Windows.Forms.TextBox();
this.dtpTime = new System.Windows.Forms.DateTimePicker();
this.SuspendLayout();
this.lblTime.Location = new System.Drawing.Point(10, 16);
this.lblTime.Name = "lblTime";
this.lblTime.Size = new System.Drawing.Size(48, 16);
this.lblTime.TabIndex = 15;
this.lblTime.Text = "Time:";
this.lblTime.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnSetTime.Location = new System.Drawing.Point(176, 16);
this.btnSetTime.Name = "btnSetTime";
this.btnSetTime.Size = new System.Drawing.Size(48, 23);
this.btnSetTime.TabIndex = 16;
this.btnSetTime.Text = "Set";
this.btnSetTime.Click += new System.EventHandler(this.btnSetTime_Click);
this.btnReset.Enabled = false;
this.btnReset.Location = new System.Drawing.Point(240, 16);
this.btnReset.Name = "btnReset";
this.btnReset.Size = new System.Drawing.Size(48, 24);
this.btnReset.TabIndex = 17;
this.btnReset.Text = "Reset";
this.btnReset.Click += new System.EventHandler(this.btnReset_Click);
this.tmrReminder.Enabled = true;
this.tmrReminder.Interval = 1000;
this.tmrReminder.Tick += new System.EventHandler(this.tmrReminder_Tick);
this.lblReminder.Location = new System.Drawing.Point(10, 56);
this.lblReminder.Name = "lblReminder";
this.lblReminder.Size = new System.Drawing.Size(62, 23);
this.lblReminder.TabIndex = 19;
this.lblReminder.Text = "Reminder:";
this.lblReminder.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.txtReminder.Location = new System.Drawing.Point(80, 56);
this.txtReminder.Name = "txtReminder";
this.txtReminder.Size = new System.Drawing.Size(208, 21);
this.txtReminder.TabIndex = 20;
this.dtpTime.CustomFormat = "hh:mm tt";
this.dtpTime.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.dtpTime.Location = new System.Drawing.Point(64, 16);
this.dtpTime.Name = "dtpTime";
this.dtpTime.ShowUpDown = true;
this.dtpTime.Size = new System.Drawing.Size(80, 21);
this.dtpTime.TabIndex = 21;
this.AutoScaleBaseSize = new System.Drawing.Size(5, 14);
this.ClientSize = new System.Drawing.Size(304, 93);
this.Controls.Add(this.dtpTime);
this.Controls.Add(this.txtReminder);
this.Controls.Add(this.lblReminder);
this.Controls.Add(this.btnReset);
this.Controls.Add(this.btnSetTime);
this.Controls.Add(this.lblTime);
this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Name = "FrmReminder";
this.Text = "Pop-Up Reminder";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
[STAThread]
static void Main()
{
Application.Run( new FrmReminder() );
}
private void btnSetTime_Click(object sender, EventArgs e)
{
btnSetTime.Enabled = false; //disable set button
txtReminder.Enabled = false; //disable textbox reminder
dtpTime.Enabled = false; // disable datetime picker
btnReset.Enabled = true; // enable reset button
}
private void tmrReminder_Tick(
object sender, EventArgs e)
{
//declare variables
DateTimePicker dtpTime = new DateTimePicker();
DateTime dtmCurrentTime = DateTime.Now;
//IF ERROR OCCURE THEN //
if (dtpTime.Value == dtmCurrentTime &&
dtpTime.Enabled == false)
{
MessageBox.Show(txtReminder.Text,
"Reminder", MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
}
}
private void btnReset_Click(object sender, EventArgs e)
{
btnSetTime.Enabled = true; //enables set Button
txtReminder.Enabled = true; //enables Reminder textbox
dtpTime.Enabled = true; // enables DateTime Picker
btnReset.Enabled = false; //disables the Reset Button
}
}
}