当前位置:首页 » 操作系统 » cwinform项目源码

cwinform项目源码

发布时间: 2022-12-26 17:59:03

‘壹’ c# Winform 实现登录界面验证码功能(文末附源码

闲来无事,最近自己发现自己的验证码功能还没有写过。于是就写下了这篇文章。

界面就比较丑了,一个picturebox,一个textbox,一个button按钮主要想的是先把功能实现了,万一以后业务上需要使用呢。

实现以后的功能图

在文本框中输入对应文字,点击确定来验证,正确时候如图所示

如果验证失败,没有提示,直接更新验证码,当然需要使用的时候根据业务逻辑来就是了,这个就比较简单了。

第一:生成验证码字符串,用到的是Random随机函数

第二:将该字符串画在picturebox中

第三点击图片,刷新验证码

第四验证验证码不区分大小写

或者区分大小写

此时完成

源码:

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 suijima

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        //验证码的长度

        private const int iVerifyCodeLength = 6;

        //验证码

        private String strVerifyCode = "";

        //匹配字符的临时变量

        string strTemp = "";

        private void btnUpdate_Click(object sender, EventArgs e)

        {

            UpdateVerifyCode();

        }

        private void Form1_Load(object sender, EventArgs e)

        {

            UpdateVerifyCode();

        }

        //更新验证码

        private void UpdateVerifyCode()

        {

            strVerifyCode = CreateRandomCode(iVerifyCodeLength);

            if(strVerifyCode=="")

            {

                return;

            }

            strTemp = strVerifyCode;

            CreateImage(strVerifyCode);

        }

        //生成验证码字符串

        private string CreateRandomCode(int iLength)

        {

            int rand;

            char code;

            string randomCode = String.Empty;

            //生成一定长度的验证码

            System.Random random = new Random();

            for (int i = 0; i < iLength; i++)

            {

                rand = random.Next();

                if (rand % 3 == 0)

                {

                    code = (char)('A' + (char)(rand % 26));

                }

                else

                {

                    code = (char)('0' + (char)(rand % 10));

                }

                randomCode += code.ToString();

            }

            return randomCode;

        }

        ///  创建验证码图片

        private void CreateImage(string strVerifyCode)

        {

            try

            {

                int iRandAngle = 45;    //随机转动角度

                int iMapWidth = (int)(strVerifyCode.Length * 21);

                Bitmap map = new Bitmap(iMapWidth, 28);    //创建图片背景

                Graphics graph = Graphics.FromImage(map);

                graph.Clear(Color.AliceBlue);//清除画面,填充背景

                graph.DrawRectangle(new Pen(Color.Black, 0), 0, 0, map.Width - 1, map.Height - 1);//画一个边框

                graph.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;//模式

                Random rand = new Random();

                //背景噪点生成

                Pen blackPen = new Pen(Color.LightGray, 0);

                for (int i = 0; i < 50; i++)

                {

                    int x = rand.Next(0, map.Width);

                    int y = rand.Next(0, map.Height);

                    graph.DrawRectangle(blackPen, x, y, 1, 1);

                }

                //验证码旋转,防止机器识别

                char[] chars = strVerifyCode.ToCharArray();//拆散字符串成单字符数组

                //文字距中

                StringFormat format = new StringFormat(StringFormatFlags.NoClip);

                format.Alignment = StringAlignment.Center;

                format.LineAlignment = StringAlignment.Center;

                //定义颜色

                Color[] c = { Color.Black, Color.Red, Color.DarkBlue, Color.Green,

Color.Orange, Color.Brown, Color.DarkCyan, Color.Purple };

                //定义字体

                string[] font = { "Verdana", "Microsoft Sans Serif", "Comic Sans MS", "Arial", "宋体" };

                for (int i = 0; i < chars.Length; i++)

                {

                    int cindex = rand.Next(7);

                    int findex = rand.Next(5); Font f = new System.Drawing.Font(font[findex], 13, System.Drawing.FontStyle.Bold);//字体样式(参数2为字体大小)

                    Brush b = new System.Drawing.SolidBrush(c[cindex]);

                    Point dot = new Point(16, 16);

                    float angle = rand.Next(-iRandAngle, iRandAngle);//转动的度数

                    graph.TranslateTransform(dot.X, dot.Y);//移动光标到指定位置

                    graph.RotateTransform(angle);

                    graph.DrawString(chars[i].ToString(), f, b, 1, 1, format);

                    graph.RotateTransform(-angle);//转回去

                    graph.TranslateTransform(2, -dot.Y);//移动光标到指定位置

                }

                pictureBox1.Image = map;

            }

            catch (ArgumentException)

            {

                MessageBox.Show("创建图片错误。");

            }

        }

        private void button1_Click(object sender, EventArgs e)

        {

            //验证大小写

                char[] ch1 = textBox1.Text.ToCharArray();

                char[] ch2 = strTemp.ToCharArray();

                int nCount = 0;

                for (int i = 0; i < strTemp.Length;i++ )

                {

                    if((ch1[i]>='a'&&ch1[i]<='z')||(ch1[i]>='A'&&ch1[i]<='Z'))

                    {

                        if (ch1[i] - 32 == ch2[i] || ch1[i] + 32 == ch2[i])

                        {

                            nCount++;

                        }

                    }

                    else

                    {

                        if (ch1[i]==ch2[i])

                        {

                            nCount++;

                        }

                    }

                }

                if (nCount==strTemp.Length)

                {

                    MessageBox.Show("验证通过");

                }

                else

                {

                    UpdateVerifyCode();

                    textBox1.Text = "";

                }

            ////不能验证大小写

            //if(textBox1.Text==strTemp)

            //{

            //    MessageBox.Show("验证通过");

            //}

            //else

            //{

            //    UpdateVerifyCode();

            //    textBox1.Text = "";

            //}

        }

        /// <summary>

        /// 图片点击事件

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        private void pictureBox1_Click(object sender, EventArgs e)

        {

            UpdateVerifyCode();

        }

    }

}

‘贰’ C# winform 如何获取网页源码中的数据

private void button1_Click(object sender, EventArgs e)
{
try
{
if (this.txtUrl.Text.Trim().Length == 0)
{
("请输入主入口地址!");
}
else
{
//这里获取GetWebContent方法的结果
string webContent = GetWebContent(this.txtUrl.Text.Trim());

//声明一个WebBrowser
WebBrowser webBrowser = new WebBrowser();
webBrowser.Navigate("about:blank");

//将GetWebContent方法返回的结果转化为HtmlDocument,就可以正确处理网页中的元素了。
HtmlDocument htmlDoc = webBrowser.Document.OpenNew(true);
htmlDoc.Write(webContent);

//获取网页中Body中的Html代码
string outerHtml = htmlDoc.Body.OuterHtml;
//获取网页的标题
string outerTitle=htmlDoc.Title;

this.txtDocumentTitle.Text = outerTitle;
this.txtDocumentConent.Text = outerHtml;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

‘叁’ 在VS2005中怎么把一个C#Winform程序打包成一个可执行程序,就是把让别人看不到源码

你将program中的启动项目改成你要启动项目,然后在解决方案配置的下拉框中选择Release(在一个绿色的箭头的旁边),然后点击绿色箭头(运行按钮),等程序运行成功后就可以在bin/Release 中找到你要的可执行文件,运行后可能会出现提示信息,不用理他,只要点确定就可以了。
在bin/Debug中的文件是你编译的可执行文件,运行效果都是一样的,不过在debug中有很多调试文件

‘肆’ 用Winform做项目,不知道怎么添加图片到SQL2005的image字段中,同时把图片显示出来,求个类似项目的源代码

我不知道为什么要这样做?
在我们的项目中,我们都是直接存储图片的路径,这样就能节约很多很多的空间。现在数码相机照的图片那么大,如果放到数据库中,那么会是多么的庞大的数据?想想都可怕

所以,建议楼主 存储路径,然后到时候需要的时候 直接去取就OK啦。

‘伍’ 如何反编译C#等net软件类库源代码

.Net 反编译软件,最着名的是 Reflector。但是最新版本收费现在打开Reflector的老版本要求强制更新到最新版本。所以,你一下在打开refector 会自动删除。那么大家可以使用 ILSpy。使用ILspy。

  • 1

    下载后的ILSPY 。

    打开EXE

  • 6

    毕竟.NET 和JAVA 属于中间语言,很好反编译。

‘陆’ 求开源好用的C#WINFORM 甘特图控件或者源码

特性时间单位独立数据结构规范
2、单一任务,分组任务,先例/依赖任务,划分任务,标记资源
3、印刷方面页面,每个页面方向和多个页面
4、为每个任务完成百分比属性
5、各种鼠标事件定制UI体验直接在图上。
6、有默认的鼠标命令,可以通过继承重载。
7、确定关键路径和松弛

‘柒’ winform 打包后怎么查看源码

我也给你提供一个关键词吧
.NET Reflector
微软内部员工自个开发的反编译工具,可以将未加密.net 开发的程序dll、exe文件反编译成跟VS一样易阅读的代码。

‘捌’ .net 的winform程序源码要如何制作成应用程序

简单的你按F5运行一下,在程序目录下面的bin下面的debug目录里面就已经生成对应的exe文件了。如果要制作安装包,可以新建一个安装部署的项目(具体你可以搜索一下,很简单)。或者用专门的安装包制作软件来制作。

两种方法:一、数据库单独备份出来,安装的时候提示用户要安装数据库。二、做一个数据库安装程序(就是用执行建库程序,这方面的资料可以搜索到,就是执行一些SQL的api函数,相当于手动附加数据库上去)另外如果你的access这样的数据库的话,直接打包进去就行了

installsheild这个打包软件是很有名的。或者用VS自带的安装部署也可以。新建项目--其它项目类型--安装和部署当然.net下的优势就是x优势,其实用winrar把需要用的dll等文件压缩到一个文件夹里,复制到目标机器解压缩就可以使用了。

‘玖’ C#winform界面特效源码,求大神大一些,初学者,谢谢

看这个:http://blog.csdn.net/meiyun/article/details/7722397

一共470多例winform 界面特效的源码。
窗体与界面设计... 9
实例001 带历史信息的菜单 10
实例002 菜单动态合并 12
实例003 像开始菜单一样漂亮的菜单... 14
实例004 任务栏托盘菜单 15
实例005 可以拉伸的菜单界面 16
实例006 菜级联菜单 18
1.2 工具栏设计... 19
实例007 带带背景的工具栏 19
实例008 带浮动工具栏 20
实例009 在带下拉菜单的工具栏... 21
实例010 在具有提示功能的工具栏... 22
实例011 在状态栏中显示检查框... 23
实例012 带进度条的状态栏 25
实例013 状态栏中加入图标 26
实例014 OutLook界面 27
实例015 带带导航菜单的主界面... 29
实例016 图形化的导航界面 32
实例017 菜类QQ的程序界面 35
实例018 类似windows xp的程序界面... 38
实例019 以图形按钮显示的界面... 42
实例020 以树形显示的程序界面... 44
实例021 动态按钮的窗体界面 46
实例022 非矩形窗体 50
实例023建立字体形状窗体 52
实例024控件随窗体自动调整 54
实例025带分隔栏的窗体 55
实例026随机更换主界面背景 56
实例027自动启动的多媒体光盘程序... 57
实例028为触摸屏程序添加虚拟键盘... 59
实例029半透明渐显窗体 61
实例030窗口颜色的渐变 63
实例031窗体中的滚动字幕 65
实例032动画显示窗体 67
实例033制作闪烁的窗体 69
实例034直接在窗体上绘图 70
实例035动画形式的程序界面 73
实例036使窗体标题栏文字右对齐... 75
实例037没有标题栏可义改变大小的窗口... 76
实例038设置窗体在屏幕中的位置... 77
实例039始终在最上面的窗体 78
实例040限制窗体大小 79
实例041获取桌面大小 81
实例042在窗口间移动按扭 82
实例043如何实现Office助手 84
实例044在关闭窗口前加入确认对话框... 85
实例045使用任意组件拖动窗体... 88
实例046修改提示字体及颜色 89
实例047如何为MDI类型窗体设置背景图片... 91
实例048向提示框中添加图标 93
实例418通过串口发送数据 95
实例419通过串口关闭对方计算机... 98
实例420密码写入与读出加密狗... 101
实例421使用加密狗进行身份验证... 105
实例422向IC卡中写入数据 107
实例423读取IC卡中的数据 113
实例424利用IC卡制作考勤程序... 116
实例425简易视频程序 119
实例426摄像头监控录像 125
实例427超市摄像头定时监控系统... 127
实例428语音卡电话呼叫系统 132
实例429客户来电查询系统 141
实例430语音卡实现电话录音 144
实例431利用短信猫收发短信息... 147
实例432利用短信远程关闭计算机... 155
实例433短信息采集烟草销售数据... 159
实例434“春晚”节目评比短信息互动平台... 164
实例435条形码扫描器销售商品... 167
实例436利用神龙卡制作练歌房程序... 169
实例463数据加密技术 174
实例464文本文件加密与解密 177
实例465利用图片加密文件 188
实例466如何编程修复Access数据库... 194
实例467访问带验证模式的Sqlserver 2000数据库... 197
实例468利用INI文件对软件进行注册... 201
实例469利用注册表设计软件注册程序... 204
实例470利用网卡序列号设计软件注册程序... 208
实例471根据cpu序列号、磁盘序列号设计软件注册程序... 214

‘拾’ Winform 在datagridview控件中增删改的源码

//删除
private void 删除用户ToolStripMenuItem_Click(object sender, EventArgs e)
{
string UserId = dgvUserInfo.SelectedRows[0].Cells[0].Value.ToString();
string delete = "delete from 用户表 where 用户编号=" + UserId;
bb.Connection = aa;
bb.CommandText = delete;
aa.Open();
bb.ExecuteNonQuery();
aa.Close();
dgvUserInfo.Rows.Remove(dgvUserInfo.SelectedRows[0]);
}
//增加
List<User> list = new List<User>();
string UserName = txtUserName.Text;
string UserPsw = txtUserPsw.Text;
string UserRight = txtUserRight.Text;
string Sql = "insert 用户表(用户名,密码,权限) values('"+UserName+"','"+UserPsw+"','"+UserRight+"')";
SqlConnection aa = new SqlConnection("Data Source=ST412\\SQLEXPRESS;Initial Catalog=44;Integrated Security=True");
SqlCommand bb = new SqlCommand();
bb.Connection = aa;
bb.CommandText = Sql;
aa.Open();
bb.ExecuteNonQuery();

热点内容
4位密码组合有多少种至少有一个0 发布:2025-05-11 03:44:03 浏览:338
八卦手指算法 发布:2025-05-11 03:23:32 浏览:281
编译成exe是什么意思 发布:2025-05-11 03:23:28 浏览:470
javaweb技术内幕 发布:2025-05-11 03:20:14 浏览:803
多台焊机变压器怎么配置 发布:2025-05-11 03:18:07 浏览:310
nmake编译 发布:2025-05-11 03:04:32 浏览:622
房产证加密码 发布:2025-05-11 02:49:17 浏览:341
服务器少个阵列卡盘符怎么找出来 发布:2025-05-11 02:34:07 浏览:636
斗地主源码开发 发布:2025-05-11 02:24:07 浏览:366
云服务器怎么设置攻击 发布:2025-05-11 02:22:09 浏览:826