首页 > 代码库 > C#中窗体间参数传递实现增删改的例子

C#中窗体间参数传递实现增删改的例子

此例子中传递的变量有string type,string text,储存在结构数组中;static int i储存在Sta类中(如果在外面声明,调用它老出错),里面有geti和seti函数来操纵它。

各个窗体实现功能及截图:

各窗体代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.IO;

using System.Data.SqlClient;

namespace 电子便签
{
    public partial class menu : Form
    {
       public menu()
        {
            InitializeComponent();
        }
        public class Sta                     //建立储存静态变量的类
        {
            public static int i = 0;
            public int geti()
            {
                return i;
            }
            public void seti(int a)
            {
                i = a;
            }
        }
        public Sta sta = new Sta();             //将此类实例化
        public struct chucun                    
        {
            public string type;
            public string text;
        }
        public chucun[] cc = new chucun[10];              //结构数组用来储存内容,最大储存单位为10个
        
        private void button1_Click(object sender, EventArgs e)           //打开增加信息add窗体
        {
            add form2 = new add(this);
            form2.Show();
        }

        private void button2_Click(object sender, EventArgs e)     //打开删除信息delete窗体
        {
            delete form4 = new delete(this);
            form4.Show();
        }

        private void button3_Click(object sender, EventArgs e)        //打开修改信息revise窗体
        {
            revise form5 = new revise(this);
            form5.Show();
        }

        private void button4_Click(object sender, EventArgs e)    //设置字体样式
        {
            FontDialog f = new FontDialog();
            if (f.ShowDialog() == DialogResult.OK)
            {
                textBox1.Font = f.Font;
            }
        }

        private void button5_Click(object sender, EventArgs e)            //设置字体颜色
        {
            ColorDialog cd = new ColorDialog();
            if (cd.ShowDialog() == DialogResult.OK)
            {
                textBox1.ForeColor = cd.Color;
            }
        }

        private void button6_Click(object sender, EventArgs e)               //设置背景
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "图片文件(*.jpg)|*.jpg|All files(*.*)|*.*";
            if (ofd.ShowDialog() == DialogResult.OK)
            {

                //path = ofd.FileName;
                this.BackgroundImage = Image.FromFile(ofd.FileName);
            }
            //this.BackgroundImage = Image.FromFile(path);
        }

        private void Form1_Load(object sender, EventArgs e)       //wait窗体为打开前奏
        {
            Waiting wait = new Waiting();
            wait.Show();
            wait.Activate();
            Application.DoEvents();
            System.Threading.Thread.Sleep(1000);
            wait.Close();
            wait.Dispose();
            //conn.ConnectionString = CString;
            
           
            
        }

        private void button7_Click(object sender, EventArgs e)   //将textBox内容存储到text文件中
        {
            FileStream fs = new FileStream("abc.text", FileMode.Create, FileAccess.Write);
            StreamWriter sw = new StreamWriter(fs, Encoding.Default);
            sw.WriteLine(textBox1.Text);
            sw.Close();
        }
    }
}
 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Windows.Forms;
 9 using System.Data.OleDb;
10 namespace 电子便签
11 {
12      
13     public partial class add : Form
14     {
15         private menu mF_Form;
16         public add(menu myForm)                       
17         {
18             InitializeComponent();
19             this.mF_Form = myForm;
20         }                                      //将窗体一对象作为窗体二属性
21         
22         private void button1_Click(object sender, EventArgs e)
23         {
24             if (string.IsNullOrEmpty(textBox1.Text) | string.IsNullOrEmpty(textBox2.Text))   //判断textBox内容是否为空
25             {
26                 string s = "输入不能为空";
27                 MessageBox.Show(s);
28             }
29             else 
30             {
31                 string s1 = textBox1.Text;
32                 string s2 = textBox2.Text;
33                 mF_Form.cc[mF_Form.sta.geti()].type = s1;
34                 mF_Form.cc[mF_Form.sta.geti()].text = s2;                //从文本框中读取相关内容
35                 
36                 string sum = "";
37                 for (int i2 = 0; i2 <= mF_Form.sta.geti(); i2++)               //将目前所有类型和内容输出在meau窗体的textBox中
38                 {
39                     sum = sum + mF_Form.cc[i2].type + ":\r\n     " + mF_Form.cc[i2].text + "\r\n";
40                 }
41                 mF_Form.textBox1.Text = sum;
42                 int ii = mF_Form.sta.geti() + 1;                     //由于添加了一组信息,静态变量加1
43                 mF_Form.sta.seti(ii);
44                 this.Close();
45             }
46         }
47 
48         private void button2_Click(object sender, EventArgs e)
49         {
50             this.Close();
51         }
52 
53         
54         
55         
56    }
57 }
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 电子便签
{
    public partial class delete : Form
    {
        
        private menu mF_Form;               
        CheckBox[] checkBox = new CheckBox[5];            //声明并实例化复选框
        public delete(menu myForm)
        {
            InitializeComponent();
            mF_Form = myForm;
            if (mF_Form.sta.geti() == 0)
            {
                Label label = new Label();
                label.Location = new System.Drawing.Point(35, 49);  //label控件显示位置
                label.Text = "无可删除类型";
                this.Controls.Add(label);
            }
            else
            {
                for (int i4 = 0; i4 < mF_Form.sta.geti(); i4++)               //动态添加复选框
                {
                    //textBox1.Text = "sfsdfsdfs";
                    checkBox[i4] = new CheckBox();
                    checkBox[i4].Location = new System.Drawing.Point(35, 49+20*i4);   //控件显示在同一列中
                    checkBox[i4].Size = new System.Drawing.Size(this.Width, 16);         //同一宽度
                    checkBox[i4].Text = myForm.cc[i4].type;
                    this.Controls.Add(checkBox[i4]); 
                }
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {

            for (int i = 0; i <= mF_Form.sta.geti(); i++)     //遍历所有
            {
                if (checkBox[i].Checked)                   //发现复选框被选中
                {
                    for (int ii = i; ii < mF_Form.sta.geti(); ii++)                 //将后面的前移,同时静态变量-1
                    {
                        mF_Form.cc[ii].type = mF_Form.cc[ii + 1].type;
                        mF_Form.cc[ii].text = mF_Form.cc[ii + 1].text;
                    }
                    mF_Form.sta.seti(mF_Form.sta.geti() -1);
                }
            }
            
            //将删除后的显示在menu窗体的textBox中
            string sum ="";            
            for (int i2 = 0; i2 <mF_Form.sta.geti(); i2++)
            {
                
                 sum = sum + mF_Form.cc[i2].type +  ":\r\n     " + mF_Form.cc[i2].text + "\r\n"; 
            }
            mF_Form.textBox1.Text = sum;
            
            
            this.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void delete_Load(object sender, EventArgs e)
        {

        }

        
        

        
    }
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 电子便签
{
    public partial class revise : Form
    {
        private menu mF_Form;
        CheckBox[] checkBox = new CheckBox[10];    //声明和实例化复选框空间
        
        public revise(menu myForm)
        {
            InitializeComponent();
            mF_Form = myForm;
            if (mF_Form.sta.geti() == 0)                       //没有内容
            {
                Label label = new Label();
                label.Location = new System.Drawing.Point(35, 49); 
                label.Text = "无可删除类型";
                this.Controls.Add(label);
            }
            else
            {
                for (int i4 = 0; i4 < mF_Form.sta.geti(); i4++)               //动态添加复选框
                {
                    //textBox1.Text = "sfsdfsdfs";
                    checkBox[i4] = new CheckBox();
                    checkBox[i4].Location = new System.Drawing.Point(35, 49 + 20 * i4);
                    checkBox[i4].Size = new System.Drawing.Size(this.Width, 16);
                    checkBox[i4].Text = myForm.cc[i4].type;
                    this.Controls.Add(checkBox[i4]);
                }
            }
        }

        private void button2_Click(object sender, EventArgs e)        //窗体关闭
        {
            this.Close();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            
            for (int i5 = 0; i5 < mF_Form.sta.geti(); i5++)
            {
                
                if (this.checkBox[i5].Checked)
                {
                    
                    mF_Form.cc[i5].text = textBox1.Text;       //修改选择项的内容
                }
           }
            //将修改后的显示在menu窗体的textBox中
            string sum = "";
            for (int i2 = 0; i2 < mF_Form.sta.geti(); i2++)
            {
                sum = sum + mF_Form.cc[i2].type + ":\r\n     " + mF_Form.cc[i2].text + "\r\n";
            }
            mF_Form.textBox1.Text = sum;

            this.Close();
        }

        
    }
}

其实使用数据库可以更方便的实现,而且数据库也可以体现出技术。这是在还没学会数据库做的,现在快交作业了,必须用数据库了,整个代码必须更新了。把这些代码提出来和大家共享一下。