三层架构笔记

1.窗口属性 { IsMdiContainer:True  指定该窗体是否是MDI容器 windowState:Maximized窗口最大化 (4)设置StartPotion:CenterParent  窗口位置居中 (5)Icon:自定义图标 (6)MaximizeBox:False 无最大化选项 (7)FormBorderStyle:FixedSingle  不可改变窗口大小 (8)AcceptButton:btnLogin 按Enter相当于点击登录按钮 (9)CancelButton:btnExit 按Esc相当于点击取消按钮 } 2.窗口登录 { progrom

            FormLogin Flogin = new FormLogin();             if (Flogin.ShowDialog() == DialogResult.OK)             {                 Application.Run(new FormMain());             } } 3.窗体渐渐出现的效果 { timer1控件 Enable;true Interval:100   private void timer1_Tick(object sender, EventArgs e)         {             double i = 0.05;             Opacity += i;         }    } 4.设置mdi窗体 { //1 设置主窗体的ismdicontainer属性 //2 设置要打开的子窗体的mdiparent //3 注意在mdi父窗体中,不能使用showdialog 打开子窗体 //以mdi子窗体的方式打开

在父窗口中 FrmStudent f = FrmStudent.Instance; f.MdiParent = this; f.Show();   //单例模式    当前项目中有且只有该类的一个对象    private static FrmStudent instance;         public static FrmStudent Instance         {             get {    //假如instace没有被创建或者已经被释放,则新建窗口                 if (instance == null || instance.IsDisposed)                 {                     instance = new FrmStudent();                 }                 return instance;             }         }    }      5.清空box中所有的文本框 {             foreach (Control item in gbadd.Controls)             {                 if (item is TextBox)                 {                     TextBox txt = item as TextBox;                     txt.Text = "";                 }             }    } 5.dataGirdView的几个属性 { AutoSizeColunbMode;fill 可见列自动调整大小    AllowUserTOresuzeRows;false不许用户自动调整行的大小 selectionMode:fullRowselect 点中单元格时选择一行 RowHeadersVisible :fasle 取消表头列的显示    }  6.关闭窗口前,提示用户是否真的关闭窗口 {         private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)         {             if (MessageBox.Show("确定退出?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.No)             {                 e.Cancel = true;             }         } } 7.MD5 {  //计算字符串的md5值         static string GetMd5(string txt)         {             //明文  把字符串转化成字节数组             byte[] buffer = System.Text.Encoding.UTF8.GetBytes(txt);             //计算md5的类             MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();             //加密以后的字节数组             byte[] ctyptBytes=  md5.ComputeHash(buffer);             //把字节数组 转化成 16进制的字符串             string s = "";             for (int i = 0; i < ctyptBytes.Length; i++)             {                 //把每一个字节转化成2位的16进制数                 s += ctyptBytes[i].ToString("x2");             }             return s;         }         //计算文件的md5值         static string GetFileMd5(string path)         {             string s = "";             using (FileStream fs = new FileStream(path,FileMode.Open))             {                 MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();                 byte[] cryptBytes = md5.ComputeHash(fs);

                for (int i = 0; i < cryptBytes.Length; i++)                 {                     s += cryptBytes[i].ToString("x2");                 }             }             return s;         }

} 8.combox {             List<Classes> list = bll.GetAllClasses();             Classes c = new Classes();             c.CName = "请选择";             c.CID = -1;             list.Insert(0,c);  //增加请选择一项

            //如果绑定的泛型集合  要显示的泛型集合中对象的属性             cboSearchClass.DisplayMember = "cName";             cboSearchClass.ValueMember = "cId";             cboSearchClass.DataSource = list; } 9.右键菜单 {         private void resetToolStripMenuItem_Click(object sender, EventArgs e)         {             MessageBox.Show("Test");

                   } } 10.显示地区窗口 {   private void FormChooseArea_Load(object sender, EventArgs e)         {             Stopwatch sw = new Stopwatch();             sw.Start();             LoadParents();             sw.Stop();             MessageBox.Show(sw.ElapsedMilliseconds.ToString());         }         void LoadParents()         {             TreeNode parent = new TreeNode();             parent.Tag = 0;             parent.Text = "全国";             tvAreas.Nodes.Add(parent);             AreasBLL bll = new AreasBLL();             List<Areas> list = bll.GetAllAreas();

            LoadChild(parent,list);             parent.Expand();         }         void LoadChild(TreeNode parent,List<Areas> list)         {             //获取父节点的id             int pid = Convert.ToInt32(parent.Tag);             foreach (Areas item in list)             {                 //找到当前的子节点                 if (item.APid == pid)                 {                     TreeNode tn = new TreeNode();                     tn.Text = item.AName;                     tn.Tag = item.AID;                     parent.Nodes.Add(tn);                     //调用递归方法                     LoadChild(tn, list);                 }             }         }         public string txt = "";         private void btnChoose_Click(object sender, EventArgs e)         {             GetTxt(tvAreas.SelectedNode);

            txt = txt.TrimEnd('-');             if (del != null)             {                 del(txt);                 this.DialogResult = System.Windows.Forms.DialogResult.OK;             }                 }         void GetTxt(TreeNode tn)         {             if (tn.Parent != null)             {                 //递归                 GetTxt(tn.Parent);             }             txt += tn.Text + "-";         }

        private void btnCancel_Click(object sender, EventArgs e)         {             this.Close();         } } 11获得拼音 { static string GetPinYins(string name)         {             string s = "";             //乐文             foreach (char item in name)             {                 if (ChineseChar.IsValidChar(item))                 {                     ChineseChar cc = new ChineseChar(item);                     s += cc.Pinyins[0].TrimEnd('1','2','3','4','5') + " ";                 }                 else                 {                     s += item.ToString();                 }             }             return s;         } }

 

      

转载于:https://www.cnblogs.com/zxp19880910/archive/2012/09/06/2674291.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576268.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++结构体中const使用场景

看如下代码&#xff1a; #include<iostream> using namespace std;#include<string>//结构体 struct Student {string name;int age;int score;}st3;//值传递 void printStufdents(struct Student st2) {cout << "子函数" << endl;st2.age…

基于外键关联的一对多单向关联

基于外键关联的单向一对多关联是一种很少见的情况&#xff0c;并不推荐使用。 <class name"Person"><id name"id" column"personId"><generator class"native"/></id><set name"addresses">…

C++结构体案例

#include<iostream> using namespace std;#include<string>//学生结构体 struct Student {string name;int age;int score; };struct Teacher {string tName;struct Student sArray[5];};//定义一个给老师学生赋值的函数 void allocateSpace(struct Teacher tArray…

php程序设计简明教程

序 编写一本有关PHP的简明教程&#xff0c;对PHP选修课程而言&#xff0c;是很必要的。 PHP语言是开放源代码语言&#xff0c;由PHP开发小组及全世界的PHP爱好者时刻进行着维护和更新&#xff0c;不断增强其功能&#xff0c;所以在网络上不断地会涌现大量的PHP的电子参考手册&a…

C++ rand()函数和srand()函数

随机数和伪随机的区别 &#xff1a; #include<iostream> using namespace std; #include<string>#include<string> #include <stdlib.h> #include <time.h> #define MIN 0 //随机数产生的范围 #define MAX 99 //函数声明…

301重定向IIS设置,及伪静态后 301重定向出错案例分享

301重定向&#xff0c;网络上的知识已经很多了&#xff0c;我在这第一次实践过程中&#xff0c;出现了一个算是低级的错误&#xff0c;但也比较典型&#xff0c;也许其它新手也会碰到&#xff0c;分享一下&#xff1a; 一、301重定向实施&#xff1a; 我们哪里体检网&#xff0…

C++ 通讯录设计(一)

#include<iostream> #include<string> using namespace std;//- 封装函数显示该界面如void showMenu() // - 在main函数中调用封装好的函数//菜单界面函数功能 void showMenu() {cout << "***********************" << endl;cout << &…

文献管理软件概述

一、时代背景 文献管理软件的诞生也是社会需求的产物。很多整天与文献打交道的人被文献郁闷了&#xff0c;然后就有了专门的文献管理软件。整天与文献打交道最多的无非是科研工作者&#xff0c;还有一类图书馆员以及文献发行者&#xff0c;不过后一类人群是少数。此处主要讨论科…

C++ 通讯录设计(二)

功能描述: 实现添加联系人功能&#xff0c;联系人上限为1000人&#xff0c;联系人信息包括(姓名、性别、年龄、联系电话、家庭住址) 添加联系人实现步骤: ●设计联系人结构体 ●设计通讯录结构体 ●main函数中创建通讯录 ●封装添加联系人函数 ●测试添加联系人功能 1.1&#…

C++ 通讯录设计(三)

显示联系人 功能描述:显示通讯录中已有的联系人信息 显示联系人实现步骤: . ●封装显示联系人函数 ●测试显示联系人功能 1.1封装显示联系人函数 思路:判断如果当前通讯录中没有人员,就提示记录为空&#xff0c;人数大于0,显示通讯录中信息 //显示联系人 void showPerson(Addr…

SWT多线程注意事项

要在后台线程里对前台界面组件进行访问的解决办法&#xff1a;使用Display对象&#xff0c;Display对象主要负责管理事件循环和控制UI线程和其它线程之间的通信。 若要访问UI界面上的对象必须通过UI线程来访问&#xff0c;就是说在非UI线程中调用UI对象是不允许的&#xff0c;这…

C++ 通讯录设计(四)

1、删除联系人 功能描述:按照姓名进行删除指定联系人 删除联系人实现步骤: ●封装检测联系人是否存在 ●封装删除联系人函数 ●测试删除联系人功能 1.1封装检测联系人是否存在 设计思路: 删除联系人前&#xff0c;我们需要先判断用户输入的联系人是否存在&#xff0c;如果存在删…

cetos 中vsftpd从安装到配置完全教程

1 安装并启动服务 [rootedwin.org]#rpm –qa | grep vsftpd &#xff1b;查看是否安装vsftpd服务 [rootedwin.org]#yum install vsftpd &#xff1b;安装vsftpd服务 [rootedwin.org]/etc/init.d/vsftpd start ;启动服务 [rootedwin.org]#chkconfig vsftpd on ;让系统服务随着系…

C++ 通讯录设计(五)

1、查找联系人 功能描述:按照姓名查看指定联系人信恿 查找联系人实现步骤 ●封装查找联系人函数 ●测试查找指定联系人 1.1封装查找联系人函数 实现思路:判断用户指定的联系人是否存在&#xff0c;如果存在显示信息&#xff0c;不存在则提示查无此人。 查找联系人代码: //4、查…

linux基础应用和常用技巧

&#xff11;、处理特殊的文件名 假设Linux系统中有一个文件名叫“-aaa”&#xff0c;如果我们想对它进行操作&#xff0c;例如现在要删除它&#xff0c;如果我们按照一般的删除方法在命令行中输入rm -aaa命令&#xff0c;界面将会提示我们是无效选项&#xff08;invalid opti…

C++ 通讯录设计(六)

1、修改联系人 功能描述:按照姓名重新修改指定联系人 修改联系人实现步骤 ●封装修改联系人函数 ●测试修改联系人功能 1.1封装修改联系人函数 实现思路:查找用户输入的联系人&#xff0c;如果查找成功进行修改操作&#xff0c;查找失败提示查无此人 修改联系人代码: //5、修…

C++ 通讯录设计(七)

1、清空联系人 功能描述:清空通讯录中所有信息 清空联系人实现步骤 ●封装清空联系人函数 ●测试清空联系人 1.1封装清空联系人函数 实现思路:将通讯录所有联系人信息清除掉&#xff0c;只要将通讯录记录的联系人数量置为0,做逻辑清空即可。 清空联系人代码: //6、清空所有联…

c语言学习笔记十四

多目标文件的链接示例代码如下&#xff1a;test18.cchar stack[512];int top-1;void push(char c){stack[top]c;}char pop(){return stack[top--];}int is_empty(void){return top-1;}test19.c#include <stdio.h>int a,b1;int main(void){push(a);push(b);push(c);while(…

C++ 程序运行前内存分区模型

C核心编程 本阶段主要针对C面向对象编程技术做详细讲解,探讨C中的核心和精髓。 1、内存分区模型 C程序在执行时&#xff0c;将内存大方向划分为4个区域 ●代码区:存放函数体的二进制代码,由操作系统进行管理的 ●全局区:存放全局变量和静态变量以及常量 ●栈区:|由编译器自动分…

[Grooy]List, Map and Range习题

1.Given the list [14, 12, 13, 11], express how we would obtain the List with these elements in descending order. def list [14,12,13,11]print list.sort().reverse() // output: [14,13,12,11]如果使用Ruby也是类似的list [14,12,13,11]#output: [14,13,12,11]print…