Click here to Skip to main content
16,018,805 members
Articles / Programming Languages / C#
Article

Visual Matrix

Rate me:
Please Sign up or sign in to vote.
1.25/5 (14 votes)
14 Aug 2001 74K   518   10   11
How to solve any sort of matrix using C#.

Sample Image - codepr1.gif

Introduction

User can easily add ,sub any limit of matrices. Edit boxes are created dynamically. Source Code is available Below

C#
//
// 
namespace WindowsApplication20
{
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.WinForms;
    using System.Data;

    /// <summary>
    /// Summary description for Form1.
    /// </summary>
    public class Form1 : System.WinForms.Form
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.Container components;
        private System.WinForms.Button button4;
        private System.WinForms.MenuItem menuItem5;
        private System.WinForms.MenuItem menuItem4;
        private System.WinForms.MenuItem menuItem3;
        private System.WinForms.MenuItem menuItem2;
        private System.WinForms.MenuItem menuItem1;
        private System.WinForms.TextBox textBox4;
        private System.WinForms.TextBox textBox3;
        private System.WinForms.Label label4;
        private System.WinForms.Label label3;
        private System.WinForms.GroupBox groupBox2;
        private System.WinForms.Label label2;
        private System.WinForms.Label label1;
        private System.WinForms.TextBox textBox2;
        private System.WinForms.TextBox textBox1;
        private System.WinForms.GroupBox groupBox1;
        private System.WinForms.LinkLabel linkLabel1;
        private System.WinForms.ToolTip toolTip1;
        private System.WinForms.ContextMenu contextMenu2;
        private System.WinForms.TrayIcon trayIcon1;
        private System.WinForms.ContextMenu contextMenu1;
        private System.WinForms.Button button2;
        private System.WinForms.Button button1;
        private System.WinForms.TextBox[,] j1= new TextBox[100,100] ;
        private System.WinForms.TextBox[,] j2= new TextBox[100,100] ;
        private System.WinForms.TextBox[,] j3= new TextBox[100,100] ;
        private System.WinForms.Label[] lb = new Label[10];

        public Form1()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            //
            // TODO: Add any constructor code after InitializeComponent call
            //
        }

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        public override void Dispose()
        {
            base.Dispose();
            components.Dispose();
        }

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            System.Resources.ResourceManager resources = 
                new System.Resources.ResourceManager (typeof(Form1));
            this.components = new System.ComponentModel.Container ();
            this.menuItem1 = new System.WinForms.MenuItem ();
            this.menuItem2 = new System.WinForms.MenuItem ();
            this.groupBox1 = new System.WinForms.GroupBox ();
            this.menuItem5 = new System.WinForms.MenuItem ();
            this.label1 = new System.WinForms.Label ();
            this.button2 = new System.WinForms.Button ();
            this.menuItem3 = new System.WinForms.MenuItem ();
            this.toolTip1 = new System.WinForms.ToolTip (this.components);
            this.groupBox2 = new System.WinForms.GroupBox ();
            this.trayIcon1 = new System.WinForms.TrayIcon ();
            this.button1 = new System.WinForms.Button ();
            this.textBox1 = new System.WinForms.TextBox ();
            this.label4 = new System.WinForms.Label ();
            this.textBox4 = new System.WinForms.TextBox ();
            this.textBox2 = new System.WinForms.TextBox ();
            this.textBox3 = new System.WinForms.TextBox ();
            this.button4 = new System.WinForms.Button ();
            this.contextMenu1 = new System.WinForms.ContextMenu ();
            this.contextMenu2 = new System.WinForms.ContextMenu ();
            this.menuItem4 = new System.WinForms.MenuItem ();
            this.linkLabel1 = new System.WinForms.LinkLabel ();
            this.label2 = new System.WinForms.Label ();
            this.label3 = new System.WinForms.Label ();
            //@this.TrayHeight = 90;
            //@this.TrayLargeIcon = false;
            //@this.TrayAutoArrange = true;
            menuItem1.Text = "Addition";
            menuItem1.Index = 0;
            menuItem1.Click += new System.EventHandler (this.menuItem1_Click);
            menuItem2.Text = "Subtraction";
            menuItem2.Index = 1;
            menuItem2.Click += new System.EventHandler (this.menuItem2_Click);
            groupBox1.TabIndex = 5;
            groupBox1.TabStop = false;
            groupBox1.Text = "Matrix A";
            groupBox1.Size = new System.Drawing.Size (88, 56);
            menuItem5.Text = "Scientific";
            menuItem5.Index = 1;
            menuItem5.Click += new System.EventHandler (this.menuItem5_Click);
            label1.Location = new System.Drawing.Point (16, 16);
            label1.Text = "Row";
            label1.Size = new System.Drawing.Size (32, 16);
            label1.TabIndex = 2;
            button2.Location = new System.Drawing.Point (216, 40);
            button2.AllowDrop = true;
            button2.Size = new System.Drawing.Size (75, 23);
            button2.TabIndex = 2;
            button2.Text = "Solution";
            button2.ContextMenu = this.contextMenu1;
            button2.Click += new System.EventHandler (this.button2_Click);
            menuItem3.Text = "Multiplication";
            menuItem3.Index = 2;
            menuItem3.Click += new System.EventHandler (this.menuItem3_Click);
            //@toolTip1.SetLocation (new System.Drawing.Point (309, 7));
            toolTip1.Active = true;
            groupBox2.Location = new System.Drawing.Point (96, 0);
            groupBox2.TabIndex = 6;
            groupBox2.TabStop = false;
            groupBox2.Text = "Matrix B";
            groupBox2.Size = new System.Drawing.Size (80, 56);
            //@trayIcon1.SetLocation (new System.Drawing.Point (115, 7));
            trayIcon1.Text = "Visual Matrix";
            trayIcon1.Visible = true;
            trayIcon1.Icon = (System.Drawing.Icon) 
                            resources.GetObject ("trayIcon1.Icon");
            trayIcon1.ContextMenu = this.contextMenu2;
            button1.Location = new System.Drawing.Point (208, 8);
            button1.Size = new System.Drawing.Size (80, 24);
            button1.TabIndex = 1;
            button1.Text = "Draw";
            button1.Click += new System.EventHandler (this.button1_Click);
            textBox1.Location = new System.Drawing.Point (56, 8);
            textBox1.Text = "0";
            textBox1.TabIndex = 0;
            textBox1.Size = new System.Drawing.Size (24, 20);
            label4.Location = new System.Drawing.Point (9, 33);
            label4.Text = "Col.";
            label4.Size = new System.Drawing.Size (32, 16);
            label4.TabIndex = 8;
            textBox4.Location = new System.Drawing.Point (48, 32);
            textBox4.Text = "0";
            textBox4.TabIndex = 7;
            textBox4.Size = new System.Drawing.Size (24, 20);
            textBox2.Location = new System.Drawing.Point (56, 32);
            textBox2.Text = "0";
            textBox2.TabIndex = 1;
            textBox2.Size = new System.Drawing.Size (24, 20);
            textBox3.Location = new System.Drawing.Point (48, 8);
            textBox3.Text = "0";
            textBox3.TabIndex = 9;
            textBox3.Size = new System.Drawing.Size (24, 20);
            button4.Location = new System.Drawing.Point (296, 8);
            button4.Size = new System.Drawing.Size (75, 23);
            button4.TabIndex = 7;
            button4.Text = "Refresh";
            button4.Click += new System.EventHandler (this.button4_Click);
            //@contextMenu1.SetLocation (new System.Drawing.Point (7, 7));
            contextMenu1.Popup += 
                    new System.EventHandler (this.contextMenu1_Popup);
            contextMenu1.MenuItems.All = 
                    new System.WinForms.MenuItem[3] {this.menuItem1, 
                    this.menuItem2, this.menuItem3};
            //@contextMenu2.SetLocation (new System.Drawing.Point (201, 7));
            contextMenu2.Popup += new System.EventHandler (this.contextMenu2_Popup);
            contextMenu2.MenuItems.All = 
                new System.WinForms.MenuItem[2] {this.menuItem4, this.menuItem5};
            menuItem4.Text = "About";
            menuItem4.Index = 0;
            menuItem4.Click += new System.EventHandler (this.menuItem4_Click);
            linkLabel1.Text = "JunaidMajeed";
            linkLabel1.Size = new System.Drawing.Size (100, 23);
            toolTip1.SetToolTip (linkLabel1, "Mail Me");
            linkLabel1.TabIndex = 4;
            linkLabel1.TabStop = true;
            linkLabel1.Location = new System.Drawing.Point (272, 264);
            linkLabel1.LinkClick += new System.EventHandler (this.linkLabel1_LinkClick);
            label2.Location = new System.Drawing.Point (25, 35);
            label2.Text = "Col.";
            label2.Size = new System.Drawing.Size (32, 16);
            label2.TabIndex = 6;
            label3.Location = new System.Drawing.Point (0, 14);
            label3.Text = "Row";
            label3.Size = new System.Drawing.Size (32, 16);
            label3.TabIndex = 7;
            this.Text = "Visual Matrix";
            this.AutoScaleBaseSize = new System.Drawing.Size (5, 13);
            this.BorderStyle = System.WinForms.FormBorderStyle.FixedToolWindow;
            this.ClientSize = new System.Drawing.Size (370, 278);
            this.Click += new System.EventHandler (this.Form1_Click);
            this.Controls.Add (this.button4);
            this.Controls.Add (this.groupBox2);
            this.Controls.Add (this.groupBox1);
            this.Controls.Add (this.linkLabel1);
            this.Controls.Add (this.button2);
            this.Controls.Add (this.button1);
            groupBox1.Controls.Add (this.label2);
            groupBox1.Controls.Add (this.label1);
            groupBox1.Controls.Add (this.textBox2);
            groupBox1.Controls.Add (this.textBox1);
            groupBox2.Controls.Add (this.textBox4);
            groupBox2.Controls.Add (this.textBox3);
            groupBox2.Controls.Add (this.label4);
            groupBox2.Controls.Add (this.label3);
        }

        protected void menuItem5_Click (object sender, System.EventArgs e)
        {
            Form2 sci = new Form2();
            sci.Show();
        }

        protected void contextMenu2_Popup (object sender, System.EventArgs e)
        {


        }

        protected void menuItem3_Click (object sender, System.EventArgs e)
        {
            double[,] t1 = new double[100,100];

            if((textBox1.Text).ToInt32()==(textBox2.Text).ToInt32()&&
                (textBox3.Text).ToInt32()==(textBox4.Text).ToInt32())
            {

                for(int i=1;i<=(textBox2.Text).ToInt32();i++)
                {
                    for(int j=1;j<=(textBox3.Text).ToInt32();j++)
                    {
                        t1[i,j]=0;
                        for(int k=1;k<=(textBox3.Text).ToInt32();k++)
                        {
                            t1[i,j]=t1[i,j]+((j1[i,k].Text).ToDouble()) * 
                                ((j2[k,j].Text).ToDouble());
                        }
                    }

                }


                for(int i=1;i<=(textBox3.Text).ToInt32();i++)
                {
                    for(int j=1;j<=(textBox2.Text).ToInt32();j++)
                    {

                        this.j3[i,j] = new System.WinForms.TextBox ();
                        j3[i,j].Location = new System.Drawing.Point 
                                                (180+i*20, 120+j*23);
                        j3[i,j].TabIndex = 0;
                        j3[i,j].Size = new System.Drawing.Size (20, 23);
                        this.Controls.Add (this.j3[i,j]);
                        j3[i,j].Text = "";
                        j3[i,j].Text = t1[i,j].ToString();
                    }
                }
            }
            else
            {

                MessageBox.Show("This version is valid for Square " + 
                                "Matrix Multiplication");
            }




        }

        protected void button4_Click (object sender, System.EventArgs e)
        {

            for(int i=1;i<=(textBox2.Text).ToInt32();i++)
            {
                for(int j=1;j<=(textBox1.Text).ToInt32();j++)
                {

                    j1[i,j].Clear();
                    j1[i,j].Hide();
                }
            }


            for(int i=1;i<=(textBox4.Text).ToInt32();i++)
            {
                for(int j=1;j<=(textBox3.Text).ToInt32();j++)
                {

                    j2[i,j].Clear();
                    j2[i,j].Hide();
                }
            }

            for(int i=1;i<=(textBox2.Text).ToInt32();i++)
            {
                for(int j=1;j<=(textBox1.Text).ToInt32();j++)
                {

                    j3[i,j].Clear();
                    j3[i,j].Hide();
                }
            }








        }

        protected void menuItem2_Click (object sender, System.EventArgs e)
        {
            double[,] temp = new double[100,100];
            if((textBox1.Text).ToInt32() == (textBox3.Text).ToInt32() && 
                (textBox2.Text).ToInt32() == (textBox4.Text).ToInt32())
            {

                for(int i=1;i<=(textBox2.Text).ToInt32();i++)
                {
                    for(int j=1;j<=(textBox1.Text).ToInt32();j++)
                    {

                        this.j3[i,j] = new System.WinForms.TextBox ();

                        j3[i,j].Location = new System.Drawing.Point 
                            (180+i*20, 120+j*23);
                        j3[i,j].TabIndex = 0;
                        j3[i,j].Size = new System.Drawing.Size (20, 23);
                        this.Controls.Add (this.j3[i,j]);
                        j3[i,j].Text = "";

                        temp[i,j] = (j2[i,j].Text).ToDouble() - 
                            (j1[i,j].Text).ToDouble();

                        j3[i,j].Text = temp[i,j].ToString();

                    }
                }
            }
            else
            {
                MessageBox.Show("this addition is not possible:");


            }

        }

        protected void menuItem1_Click (object sender, System.EventArgs e)
        {

            double[,] temp = new double[100,100];
            if((textBox1.Text).ToInt32() == (textBox3.Text).ToInt32() && 
                (textBox2.Text).ToInt32() == (textBox4.Text).ToInt32())
            {

                for(int i=1;i<=(textBox2.Text).ToInt32();i++)
                {
                    for(int j=1;j<=(textBox1.Text).ToInt32();j++)
                    {

                        this.j3[i,j] = new System.WinForms.TextBox ();

                        j3[i,j].Location = new System.Drawing.Point 
                            (180+i*20, 120+j*23);
                        j3[i,j].TabIndex = 0;
                        j3[i,j].Size = new System.Drawing.Size (20, 23);
                        this.Controls.Add (this.j3[i,j]);
                        temp[i,j] = (j2[i,j].Text).ToDouble() + 
                            (j1[i,j].Text).ToDouble();
                        j3[i,j].Text = temp[i,j].ToString();

                    }
                }
            }
            else
            {
                MessageBox.Show("this addition is not possible:");


            }


        }

        protected void menuItem4_Click (object sender, System.EventArgs e)
        {
            Form3 abt = new Form3();
            abt.Show();

        }

        protected void contextMenu1_Popup (object sender, System.EventArgs e)
        {

        }

        protected void linkLabel1_LinkClick (object sender, System.EventArgs e)
        {
            System.Diagnostics.Process.Start("mailto:junaidmajeed161@hotmail.com");

        }

        protected void button3_Click (object sender, System.EventArgs e)
        {
            MessageBox.Show("Under Developement");

        }

        protected void button2_Click (object sender, System.EventArgs e)
        {
            MessageBox.Show("press Right Mouse Button:");

        }

        protected void Form1_Click (object sender, System.EventArgs e)
        {

        }

        protected void button1_Click (object sender, System.EventArgs e)
        {
            if((textBox1.Text).ToInt32() ==0 || (textBox2.Text).ToInt32() ==0 || 
                (textBox3.Text).ToInt32() ==0 || (textBox4.Text).ToInt32() ==0)
            {
                MessageBox.Show("pls fill Row Column Boxes");

            }
            else
            {



                int tb1;
                tb1 = (textBox1.Text).ToInt32();


                for(int i=1;i<=(textBox2.Text).ToInt32();i++)
                {
                    for(int j=1;j<=(textBox1.Text).ToInt32();j++)
                    {

                        this.j1[i,j] = new System.WinForms.TextBox ();

                        j1[i,j].Location = new System.Drawing.Point 
                            (18+i*20, 36+j*23);
                        j1[i,j].TabIndex = 0;
                        j1[i,j].Size = new System.Drawing.Size (20, 23);
                        this.Controls.Add (this.j1[i,j]);
                    }
                }

                for(int i=1;i<=(textBox4.Text).ToInt32();i++)
                {
                    for(int j=1;j<=(textBox3.Text).ToInt32();j++)
                    {

                        this.j2[i,j] = new System.WinForms.TextBox ();

                        j2[i,j].Location = new System.Drawing.Point 
                            (20+i*20, 120+j*23);
                        j2[i,j].TabIndex = 0;
                        j2[i,j].Size = new System.Drawing.Size (20, 23);
                        this.Controls.Add (this.j2[i,j]);
                    }
                }
            }


        }

        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        public static void Main(string[] args) 
        {
            Application.Run(new Form1());
        }
    }
}
//
System Tray is also built in and Context Menus are used for navigation

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralMy vote of 5 Pin
Manoj Kumar Choubey14-Mar-12 3:56
professionalManoj Kumar Choubey14-Mar-12 3:56 
Nice
GeneralHell Pin
Behlool21-Apr-05 0:24
Behlool21-Apr-05 0:24 
Generalwhy laugh........ Pin
Tze-Haw85-Apr-03 2:30
Tze-Haw85-Apr-03 2:30 
GeneralHe is a begginer you idiots Pin
balpo16-Feb-03 14:42
balpo16-Feb-03 14:42 
GeneralThis is awful Pin
Anonymous13-Jul-02 14:38
Anonymous13-Jul-02 14:38 
GeneralRe: This is awful Pin
cbuchner17-Aug-02 23:41
cbuchner17-Aug-02 23:41 
Generaluhmm.. Pin
rchiav26-Apr-02 9:13
rchiav26-Apr-02 9:13 
GeneralHell Pin
13-Mar-02 8:34
suss13-Mar-02 8:34 
QuestionWhy doesn't somebody delete this? Pin
25-Sep-01 22:25
suss25-Sep-01 22:25 
GeneralWho are you Pin
31-Aug-01 3:45
suss31-Aug-01 3:45 
GeneralNice Article Pin
Paul Barrass20-Aug-01 23:44
Paul Barrass20-Aug-01 23:44 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.