Monday, September 10, 2018

டாட்நெட் தொழில் நுட்பம் கற்றுக்கொள்ளலாம்-பகுதி-10



c#-ல் கீபோர்ட் உள்ளீட்டை எவ்வாறு கையாளுவது
 
ஒரு கீயை பொதுவாக அழுத்தும் பொழுது கீபோர்ட் ஈவண்ட்கள் நிகழுகின்றன. விண்டோஸ் ஃபார்ம் அப்ளிகேசன்கள் அதை பிராசஸ் செய்கின்றன.
 எந்த கீ பிரஸ் செய்யப்பட்டுள்ளது என்பதை எவ்வாறு அறிவது?
பொதுவாக ஒரு கீயை அழுத்தும் பொழுது பின்வரும் வரிசையில் ஈவண்ட்கள் நிகழ்கின்றன.
                  KeyDown
                  KeyPress
                  KeyUp

எண்டர் கீ அழுத்தப் பட்டுள்ளது என்பதை எவ்வாறு அறிவது.
பின் வரும் நிரல் வரிகளின் மூலம் அறியலாம்.
  if (e.KeyCode == Keys.Enter)
  {
      MessageBox.Show("Enter Key Pressed ");
  }
TextBox1_KeyDown event  எவ்வாறு எழுதுவது?
டெக்ஸ்ட்பாக்ஸ் கண்ட்ரோலை செலெக்ட் செய்து கொண்டு f4 கீயை அழுத்தவும். பிராப்பர்ட்டி விண்டோ திறக்கப்படும். அதில் ஈவண்ட் ஐக்கானை பிரஸ் செய்யவும். KeyDown என்ற ஈவண்டில் வைத்து டபிள் கிளிக் செய்யவும்.

இப்போது கோட் எடிட்டரில் பின் வரும் படி வரிகள் வரும்.இதில் நமக்கு தேவையான நிரல் வரிகளை சேர்த்துக் கொள்ளலாம்.
  private void textBox1_KeyDown(.....)
  {
  }

KeyDown Event, KeyPress Event and KeyUp Event  ஆகியவற்றின் வித்தியாசங்கள்:
KeyDown Event : இந்த ஈவண்ட் ஆனது பயனர் ஒரு கீயை அழுத்தும் போதே நிகழுகின்றன. இது பயனர் கீயை அழுத்துன் நிலையிலேயே வைத்திக்கும் வரை திரும்ப திரும்ப ஏற்படுகின்றன.
KeyPress Event :  இந்த ஈவண்ட் ஆனது பயனை ஒரு கீயை பிரஸ் செய்து அதை விடுவிக்கும் போது ஏற்படுகின்றது. இது கேரக்டர் அல்லாத கீயை அழுத்தும் பொழுது ஏற்படாது. keyDown மற்றும் keyUp ஈவண்ட்டுகள் கேரக்டர் அல்லாத கீயை அழுத்தும் பொழுதும் ஏற்படுகின்றன.
 KeyUp Event : இந்த ஈவண்ட் ஆனது ஒரு கீயை விடுவிக்கும் பொழுது ஏற்படுகின்றன.
 KeyPress Event :

using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == (char)Keys.Enter)
            {
                MessageBox.Show("Enter key pressed");
            }
            if (e.KeyChar == 13)
            {
                MessageBox.Show("Enter key pressed");
            }
        }
    }
}

KeyDown Event :

using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                MessageBox.Show("Enter key pressed");
            }
        }
    }
}


KeyUp Event :

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void textBox1_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                MessageBox.Show("Enter key pressed");
            }
        }
    }
}
இயக்க நேரத்தில் கண்ட்ரோல்களை உருவாக்குவது எப்படி?
சி#-ல் கண்ட் ரோல் அர்ரே உருவாக்குவது எப்படி?
How to create Control Arrays in C# ?
Visual Studio .NET –ல் கண்ட் ரோல் அர்ரே உருவாக்க முடியாது எனினும் பின் வரும் முறையில் அதே போன்று ஒன்றை ஏற்படுத்தலாம். பயனர் டெக்ஸ்ட்பாக்ஸ்அல்லது பட்டன் ஆகையவற்றின் மூலம் பயன்பாட்டுடன் தொடர்பு கொள்ளும் பொழுது இயக்க நேரத்தில் கண்ட் ரோல்களை உருவாக்கலாம்..

How to create Dynamic Controls in C# ?
கீழே உள்ள சான்று நிரலில் ஒவ்வொரு முறை பட்டனை அழுத்தும் பொழுதும் இயக்க நேரத்தில் ஒவ்வொரு டெக்ஸ்ட்பாக்ஸ் உருவாகின்றது.
using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        int cLeft = 1;

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            AddNewTextBox();
        }

        public System.Windows.Forms.TextBox AddNewTextBox()
        {
            System.Windows.Forms.TextBox txt = new System.Windows.Forms.TextBox();
            this.Controls.Add(txt);
            txt.Top = cLeft * 25;
            txt.Left = 100;
            txt.Text = "TextBox " + this.cLeft.ToString();
            cLeft = cLeft + 1;
            return txt;
        }
    }
}
Keep Form on Top of All Other Windows
The System.Windows.Forms நேம் பேஸ் ஆனது மைக்ரோ சாப்ட் விண்டோஸ் இயக்க முறைமையின் பலன்களை பயன்படுத்திக் கொண்டு சிறந்த பயனர் இடை முகப்பை தருகின்றது  ஒரு ஃபார்ம் ஒன்றினை மற்ற ஃபார்ம்களுக்கு மேற்புறத்தில் வரவைக்க அதன் topmost பண்பிற்கு true என்று மதிப்பிருத்துவதன் மூலம் செய்யலாம்.
  Form2 frm = new Form2();
  frm.TopMost = true;
  frm.Show();
இந்த பண்பை பயன் படுத்தி ஃபார்ம் ஒன்றினை எப்பொழுதும் மெசேஸ் பாக்ஸ் போன்று வரவைக்கலாம்.

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
      public partial class Form1 : Form
      {
            public Form1()
            {
                  InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {
                  Form2 frm = new Form2();
                  frm.TopMost = true;
                  frm.Show();
            }
      }
}
C# Timer Control
What is Timer Control ?
 Timer Control  ஆனது client side மற்றும் server side ஆகியவற்றில் முக்கிய பங்கு வகிக்கின்றது. எந்த ஒரு இடையீடும் இன்றி ஒரு குறிப்பிட்ட மில்லி செகண்டுகள்ளுக்கு ஒரு முறை ஒரு குறிப்பிட்ட ஈவண்டை ஏற்படுத்துகின்றது

Use of Timer Control
வெவ்வேறு சூழ்நிலைகளின் பொழுது நமக்கு டைமர் கண்ட் ரோல் ஆப்ஜெக்ட் பயன்படுகின்றது. ஒரு குறிப்பிட்ட செயற்பாட்டை குறிப்பிட்ட நேரத்திற்கு ஒரு முறை இயக்குவது, அனிமேசன் கிராபிக்ஸில் வேகத்தை அதிகப் படுத்துதல் அல்லது குறைத்தல் போன்ற வற்றிற்கு டைமர் கண்ட் ரோல் பயன்படுகின்றது.
 ஒரு டைமர் கண்ட் ரோல் ஆனது இயக்க நேரத்தில் எந்த வித தோற்றமும் இருக்காது

How to Timer Control ?
 டைமர் கண்ட் ரோல் ஆனது மில்லி செகண்ட் , மினிட்ஸ் அல்லது  மணிக்கு ஒரு முறை கோடிங்கை இயக்குகின்றது ஒரு செகண்ட் என்பது 1000 மில்லி செகண்ட் ஆகும் . அதாவது ஒரு நிமிடத்திற்கு முறை இயக்கவதற்கு 60000(60* 1000) என இண்டர்வல் பண்பிற்கு மதிப்பிருத்துவது வேண்டும். பொதுவாக அதன் enabled என்ற பண்பு false ஆக இருக்கும். அதை true என்று மதிப்பிருத்துவது வேண்டும்.

Timer example
பின் வரும் நிரலில் 1000 மில்லி செகண்டிற்கு ஒரு முறை(ஓரு செகண்ட்) நிகழ் நேரத்தை ஒரு லேபிளில் காண்பிக்கும். அதன் டைமர் இண்டர்வல் 1000 என மதிப்பிருத்தப்பட்டிருக்க வேண்டும்.

using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            label1.Text = DateTime.Now.ToString();
        }
    }
}

Start and Stop Timer Control
Start மற்றும் stop மெத்தட்கள் மூலம் ஒரு டைமரை இய்க்கவும் அல்லது முடிவிற்கு கொண்டு வர வைக்கவும் முடியும்.
C# timer start stop
பின்  வரும் நிரல் 10 செகண்டிற்கு தான் டைமர் கண்ட் ரோலை இயக்கும். அதற்கு பிறகு அதை நிறுத்தி விடும்.

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        int second = 0;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Interval = 1000;
            timer1.Start();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            label1.Text = DateTime.Now.ToString();
            second = second + 1;
            if (second >= 10)
            {
                timer1.Stop();
                MessageBox.Show("Exiting from Timer....");
            }
        }
    }
}
How to use C# ArrayList Class
அர்ரர் லிஸ்ட் என்பது நமக்கு ஏற்றாற் போல் மாற்றிக் கொள்ளும் டேட்டா ஸ்டரக்சர் ஆகும். இது சாதாரண மதிப்புகளின் தொகுப்பு ஆகும். அதில் நாம் புதிதாக ஒரு டேட்டாவை சேர்த்துக் கொள்ளலாம். அல்லது ஒரு குறிப்பிட்ட இன்டக்ஸில் உட்புகுத்தலாம், டெலீட் செய்யலாம். இதன் அளவை இயக்க நேரத்தில் கூட்டவோ அல்லது குறைக்கவோ முடியும்.
c-sharp-arraylist
  Add : புதிதாக ஒரு டேட்டாவை சேர்த்துக் கொள்ளலாம்.
  Insert : புதிதாக ஒரு டேட்டாவை ஒரு குறிப்பிட்ட இண்டக்ஸில் இன்செர்ட் செய்யலாம்
  Remove : ஒரு குறிப்பிட்ட டேட்டாவை டெலீட் செய்யலாம்  RemoveAt: ஒரு குறிப்பிட்ட இண்டெக்ஸில் உள்ள டேட்டாவை டெலீட் செய்யலாம்.
  Sort : அர்ரே லிஸ்டை ஏறுவரிசை இறங்கு வரிசை ஆகியவற்றில் மாற்றி அமைத்துக் கொள்ளலாம்.
டேட்டா புதிதாக சேர்த்துக் கொள்ளல்
  Syntax : ArrayList.add(object)
  object : The Item to be add the ArrayList
  ArrayList arr;
  arr.Add("Item1");
ஒரு குறிப்பிட்ட இண்டக்ஸில் டேட்டாவை இன்செர்ட் செய்தல்
  Syntax : ArrayList.insert(index,object)
  index : The position of the item in an ArrayList
  object : The Item to be add the ArrayList
  ArrayList arr;
  arr.Insert(3, "Item3");
ஒரு டேட்டாவை டெலீட் செய்தல்
  Syntax : ArrayList.Remove(object)
  object : The Item to be add the ArrayList
  arr.Remove("item2")
ஒரு குறிப்பிட்ட இண்டெக்ஸில் உள்ள டேட்டாவை டெலீட் செய்தல்
  Syntax : ArrayList.RemoveAt(index)
  index : the position of an item to remove from an ArrayList
  ItemList.RemoveAt(2)
அர்ரேயை சார்ட் செய்தல்
  Syntax : ArrayList.Sort()
சான்று நிரல்:
using System;
using System.Collections;
using System.Windows.Forms;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int i = 0;
            ArrayList ItemList = new ArrayList();
            ItemList.Add("Item4");
            ItemList.Add("Item5");
            ItemList.Add("Item2");
            ItemList.Add("Item1");
            ItemList.Add("Item3");
            MessageBox.Show ("Shows Added Items");
            for (i = 0; i < = ItemList.Count - 1; i++)
            {
                MessageBox.Show(ItemList[i].ToString());
            }
            //insert an item
            ItemList.Insert(3, "Item6");
            //sort itemms in an arraylist
            ItemList.Sort();
            //remove an item
            ItemList.Remove("Item1");
            //remove item from a specified index
            ItemList.RemoveAt(3);
            MessageBox.Show("Shows final Items the ArrayList");
            for (i = 0; i < = ItemList.Count - 1; i++)
            {
                MessageBox.Show(ItemList[i].ToString());
            }
        }
    }
}

இந்த நிரலை இயக்கும் பொழுது முதலில் ஐந்து ஐட்டம்கள் ஆட் செய்து பின்பு அதை காட்சிபடுத்துகின்றது. பிறகு மூன்றாவது இண்டக்ஸில் ஒரு ஐட்டம் புதிதாக சேர்த்துக் கொள்ளப் படுகின்றது. பின்பு அது சார்ட் செய்யப்படுகின்றது. பிறகு ஐட்டம்1 மற்றும் மூன்றாவது இண்டெக்ஸில் உள்ள ஐட்டம் ஆகியவை டெலீட் செய்யப்பட்டு பின்பு காண்பிக்கப் படுகின்றது.
How to use C# HashTable Class
இது key /value ஆகியவற்றின் தொகுப்பாக பயன்படுகின்றது.
Hash table ஒன்றில் பயன்படுத்தப்படும் மெத்தட்கள்:

  Add       : புதிதாக ஒரு key மற்றும் value சேர்த்துக் கொள்ள  ContainsKey  : ஒரு குறிப்பிட்ட கீ இருக்கின்றதா என சோதிக்க  ContainsValue: ஒரு குறிப்பிட்ட மதிப்பு இருக்கின்றதா என சோதிக்க Check the specified Value exist in HashTable
  Remove    : ஒரு குறிப்பிட்ட கீ மற்றும் மதிப்பு இரண்டையும் டெலீட் செய்ய
Add செய்தல்
  Syntax : HashTable.Add(Key,Value)
  Key : The Key value
  Value : The value of corresponding key
  Hashtable ht;
  ht.Add("1", "Sunday");
ContainsKey : கீ உள்ளதா என பரிசோதித்தல்
  Synatx : bool HashTable.ContainsKey(key)
  Key       : The Key value for search in HahTable
  Returns : return true if item exist else false
  ht.Contains("1");
ContainsValue : மதிப்பு உள்ளதா என பரிசோதிக்க
  Synatx : bool HashTable.ContainsValue(Value)
  Value : Search the specified Value in HashTable
  Returns : return true if item exist else false
  ht.ContainsValue("Sunday")
Remove : குறிப்பிட்ட் கீ மற்றும் வேல்யூ ஆகியவற்றை டெலீட் செய்தல்
  Syntax : HashTable.Remove(Key)
  Key : The key of the element to remove
  ht.Remove("1");
சான்று நிரல்:

using System;
using System.Collections;
using System.Windows.Forms;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Hashtable weeks = new Hashtable();
            weeks.Add("1", "SunDay");
            weeks.Add("2", "MonDay");
            weeks.Add("3", "TueDay");
            weeks.Add("4", "WedDay");
            weeks.Add("5", "ThuDay");
            weeks.Add("6", "FriDay");
            weeks.Add("7", "SatDay");
            //Display a single Item

            MessageBox.Show(weeks["5"].ToString ());
            //Search an Item
            if (weeks.ContainsValue("TueDay"))
            {
                MessageBox.Show("Find");
            }
            else
            {
                MessageBox.Show("Not find");
            }
            //remove an Item
            weeks.Remove("3");
            //Display all key value pairs
            foreach (DictionaryEntry day in weeks )
            {
                MessageBox.Show (day.Key + "   -   " + day.Value );
            }
        }
    }
}

இந்த நிரலை நாம் இயக்கும் பொழுது முதலில் ஏழு கீ/வேல்யூ டேட்டா ஆட் செய்யப் படுகின்றது.. பிறகு TueDay என் மதிப்புள்ளதா என சோதிக்கின்றது. பிறகு மூன்றாவது ஐட்டம் டெலீட் செய்யப்படுகின்றது. பிறகு மொத்த டேட்டாவையும் காண்பிக்கின்றது.
How to use C# Stack Class
Stack  ஆனது  last-in-first-out (LIFO) என்பதன் அடிப்படையில் அமைந்த டேட்டா ஸ்ட்ரக்சர் ஆகும். இதில் கடைசியில் ஒரு ஐட்டம் ஆட்(push) செய்யலாம். கடைசியில் உள்ள டேட்டாவை டெலீட் (Pop)செய்யலாம்.
பொதுவாக பயன்படும் மெதட்கள்:
  Push      : புதிதாக ஒரு டேட்டாவை சேர்க்க
 Pop  : கடைசியில் உள்ள டேட்டாவை நீக்க.
  Contains: குறிப்பிட்ட டேட்டா உள்ளதா என பரிசோதிக்க
Push : ஆப்ஜெக்ட் சேர்த்தல்
  Syntax : Stack.Push(Object)
  Object : The item to be inserted.
  Stack days = new Stack();
  days.Push("Sunday");
Pop : கடைசியில் உள்ள ஆப்ஜெக்டை நீக்குதல்
  Syntax : Object Stack.Pop()
  Object : Return the last object in the Stack
  days.Pop();
Contains : குறிப்பிட்ட ஆப்ஜெக்ட் ஸ்டாக்கில் உள்ளதா என பரிசோதித்தல்
  Syntax : Stack.Contains(Object)
  Object : The specified Object to be search
  days.Contains("Tuesday");

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Stack days = new Stack();
            days.Push("SunDay");
            days.Push("MonDay");
            days.Push("TueDay");
            days.Push("WedDay");
            days.Push("ThuDay");
            days.Push("FriDay");
            days.Push("SaturDay");
            if (days.Count ==7)
            {
                MessageBox.Show(days.Pop().ToString ());
            }
            else
            {
                MessageBox.Show("SaturDay does not exist");
            }
        }
    }
}
How to use C# Queue Class
Queue ஆனது FIFO( a first-in, first-out) முறையில் அமைந்த டேட்டா ஸ்ட்ரக்சர் ஆகும். இதன் ஆரம்பத்தில் உள்ள ஆப்ஜெக்டை தான் நாம் டெலீட் செய்ய முடியும். புதிதாக ஒரு ஆப்ஜெக்ட் சேர்த்து கொள்ளுதல் Enqueue எனப்படுகின்றது.  நீக்குதல் dequeue எனப்படுகின்றது. Peek என்பது க்யூவின் முதல் ஆப்ஜெக்டின் ரெஃபெரன்ஸை பெற உதவுகின்றது.க்யூ ஆனது நல் வேல்யூகளை ஏற்றுக் கொள்ளுகின்றது. டூப்லிகேட் ஆப்ஜெக்டுகளையும் சேர்த்துக் கொள்ளுகின்றது.
க்யூவில் உள்ள முக்கியமான மெதட்கள்:
  Enqueue : Add an Item in Queue
  Dequeue : Remove the oldest item from Queue
  Peek        : Get the reference of the oldest item
Enqueue : புதிதாக ஐட்டல் சேர்த்துக் கொள்தல்
  Syntax : Queue.Enqueue(Object)
  Object : The item to add in Queue
  days.Enqueue("Sunday");
Dequeue :  முதலில் உள்ள ஐட்டத்தை நீக்குதல்Remove the oldest item from Queue (we don't get the item later)
  Syntax : Object Queue.Dequeue()
  Returns : Remove the oldest item and return.
  days.Dequeue();
eek : முதல் ஐட்டத்தின் reference பெறுதல்
  Syntax : Object Queue.Peek()
  returns : Get the reference of the oldest item in the Queue
  days.peek();
சான்று நிரல்:

using System;
using System.Collections;
using System.Windows.Forms;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Queue days = new Queue();
            days.Enqueue("Sunday");
            days.Enqueue("Monday");
            days.Enqueue("Tuesday");
            days.Enqueue("Wednsday");
            days.Enqueue("Thursday");
            days.Enqueue("Friday");
            days.Enqueue("Saturday");

            MessageBox.Show (days.Dequeue().ToString ());
           
            if (days.Contains("Monday"))
            {
                MessageBox.Show("The queue contains Monday");
            }
            else
            {
                MessageBox.Show("Does not match any entries");
            }
        }
    }
}
How to use C# NameValueCollection Class
NameValueCollection ஆனது கீ/வேல்யூ அடிப்ப்டையில் டேட்டாவை சேமிக்கின்றது. இது hash table போன்றது தான். எனினும் இதில் ஒரு கீயில்ஒன்றுக்கும் மேற்பட்ட பண்புகளை சேமிக்கலாம்.
System.Collections.Specialized Class என்பதை நம் நிரலில் உபயோகப் படுத்தல் வேண்டும்.
Adding new pairs
  NameValueCollection.Add(name,value)
  NameValueCollection pair = new NameValueCollection();
  pair.Add("High", "80");
Get the value of corresponding Key
  string[] NameValueCollection.GetValues(index);
  NameValueCollection pair = new NameValueCollection();
  pair.Add("High", "80");
  string[] vals = pair.GetValues(1);

using System;
using System.Collections;
using System.Windows.Forms;
using System.Collections.Specialized;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            NameValueCollection markStatus = new NameValueCollection();
            string[] values = null;

            markStatus.Add("Very High", "80");
            markStatus.Add("High", "60");
            markStatus.Add("medium", "50");
            markStatus.Add("Pass", "40");

            foreach (string key in markStatus.Keys)
            {
                values = markStatus.GetValues(key);
                foreach (string value in values)
                {
                    MessageBox.Show (key + " - " + value);
                }
            }
        }
    }
}

-முத்து கார்த்திகேயன்,மதுரை.
ads Udanz

No comments:

Post a Comment