winform开发,请教devexpress的winform界面开发基本步骤
winform开发,请教devexpress的winform界面开发基本步骤详细介绍
本文目录一览: 使用c#语言开发的winform程序称为?
WinForm是用C#语言编写。
2、WinForm是C/S模式(客户端模式)3、WebFrom是B/S模式(基于浏览器模式,由远程服务器提供信息)4、.net是平台,是一个大类!这个大类下面有很多方法,即编程方式。(C#、VB、J#、F#)WinForm中就不用asp.net了用的就是C#语言。asp.net是基于B/S模式的,asp.net可以是C#可以是VB拆开来看就是ActiveServerPage@.net,以前的asp是ActiveServerPage但它不是属于.net平台下的
.net WinForm用户控件开发:用户控件复杂属性设置
这一节 大家共同学习下 用户控件的自定义的复杂的属性设置 我们这里自定义一个用户控件和自定义一个属性
本节重点:
怎样定义复杂属性
复杂属性和基本类型相互转换
第一步 先来自定义一个类 代码如下
///
public class CustomAttri { public CustomAttri(int width int height) { _width = width; _height = height; } public CustomAttri() { } private int _width; private int _height; ///
public int Width { get { return _width; } set { _width = value; } } ///
public int Height { get { return _height; } set { _height = value; } } }
然后自定义一个控件 并且定义一属性SecondSize 代码如下
public partial class UCPanel : Control { public UCPanel() { InitializeComponent(); } private CustomAttri _sSize=new CustomAttri( );; ///
[Description( 第二尺寸 )] [Category( 尺寸 )] public CustomAttri SecondSize { get { return _sSize; } set { _sSize=value; } } }
此时编译项目 然后把用户控件拖到窗体上 就可以在属性设计器中看到此属性 但是此时属性是只读的 不能设置值
效果图如下
接下来 我们实现让用户可以自己设置属性的值 并把用户输入的值进行转换
如果想要把用户输入的值转换为我们自定义的类型 需要继承TypeConverter 类 并实现其方法
转换器代码如下:
///
public class CustomAttriConverter:TypeConverter { ///
///
当前上下文对象 ///
给定的类型 ///
public override bool CanConvertFrom(ITypeDescriptorContext context Type sourceType) { //如果给定的类型为字符串 可以转换为自定义类型 if (sourceType==typeof(string)) { return true; } return base CanConvertFrom(context sourceType); } ///
///
当前上下文 ///
指定的类型 ///
public override bool CanConvertTo(ITypeDescriptorContext context Type destinationType) { //如果目标类型是字符串 允许将自定义类型转换为字符串 if (destinationType==typeof(string)) { return true; } return base CanConvertTo(context destinationType); } ///
///
当前上下文信息 ///
区域信息 ///
指定类型 ///
public override object ConvertFrom(ITypeDescriptorContext context System Globalization CultureInfo culture object value) { if (value is string) { string[] sizeArr = ((string)value) Split( );//将输入的字符串以逗号进行分割 CustomAttri ca = new CustomAttri(); ca Width=Convert ToInt (sizeArr[ ]); ca Height=Convert ToInt (sizeArr[ ]); return ca; } return base ConvertFrom(context culture value); } ///
///
当前上下文 ///
区域 ///
///
指定类型 ///
public override object ConvertTo(ITypeDescriptorContext context System Globalization CultureInfo culture object value Type destinationType) { //如果要转换为自定义类型 if (destinationType==typeof(string)) { if (value is CustomAttri) { CustomAttri ca = (CustomAttri)value; return ca Width ToString() + + ca Height ToString(); } } return base ConvertTo(context culture value destinationType); } }
然后把该转换器标记在自定义属性上 这样在窗体上 就可以为该用户控件的属性设置值了
[Description( 第二尺寸 )] [Category( 尺寸 )] [TypeConverter(typeof(CustomAttriConverter))] public CustomAttri SecondSize { get { return _sSize; } set { _sSize=value; } }
效果图:
子属性的实现
上面代码虽然实现了可以给自定义属性设置值 但是字属性不能显示出来 如果想实现把子属性显示出来 需要重载以下方法
///
///
///
public override bool GetPropertiesSupported(ITypeDescriptorContext context) { return true; } public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context object value Attribute[] attributes) { //return base GetProperties(context value attributes); return TypeDescriptor GetProperties(typeof(CustomAttri) attributes); }
效果图
lishixinzhi/Article/program/net/201311/13986
Winform开发中如何将数据库字段绑定到ComboBox控件
public static SqlDataReader GetReader(string sql) 2 { 3 SqlConnection conn = new SqlConnection(connString); 4 SqlCommand cmd = new SqlCommand(sql, conn); 5 try 6 { 7 conn.Open(); 8 return cmd.ExecuteReader(CommandBehavior.CloseConnection); 9 }10 catch (Exception ex)11 {12 conn.Close();13 //将错误信息写入日志...14 15 throw ex;16 }17 }封装到集合中: 1 public List
GetAllClasses() 2 { 3 string sql = "select ClassName,ClassId from StudentClass"; 4 SqlDataReader objReader = SQLHelper.GetReader(sql); 5 List
list = new List
(); 6 while (objReader.Read()) 7 { 8 list.Add(new StudentClass() 9 {10 ClassId = Convert.ToInt32(objReader["ClassId"]),11 ClassName = objReader["ClassName"].ToString()12 });13 }14 objReader.Close();15 return list;16 }然后在窗体初始化方法里面调用并绑定数据: 1 private StudentClassService objClassService = new StudentClassService(); 2 3 public FrmAddStudent() 4 { 5 InitializeComponent(); 6 //初始化班级下拉框 7 this.cboClassName.DataSource = objClassService.GetAllClasses(); 8 this.cboClassName.DisplayMember = "ClassName"; 9 this.cboClassName.ValueMember = "ClassId";10 11 }第二种情况:SQLHelper类中的代码:1 public static DataSet GetDataSet(string sql)2 {3 SqlConnection conn = new SqlConnection(connString);4 //SqlCommand cmd = new SqlCommand(sql, conn);5 SqlDataAdapter da = new SqlDataAdapter(sql, conn);6 DataSet ds = new DataSet();7 da.Fill(ds);8 return ds;9 }然后在窗体初始化方法里面调用并绑定数据: 1 public partial class FrmVoucherQuery : Form 2 { 3 public FrmVoucherQuery() 4 { 5 InitializeComponent(); 6 string sql = string.Format("Select FName From t_VoucherGroup Order by FGroupID"); 7 //控件名.DataSource=数据集.数据表 8 cbVoucherName.DataSource = SQLHelper.GetDataSet(sql).Tables[0]; 9 cbVoucherName.DisplayMember = "FName";10 cbVoucherName.ValueMember = "FName";11 }12 }Winform开发中如何将数据库字段绑定到ComboBox控件标签:对象cep...statinfform方法splayrom
WinForm开发的小技巧(2)——命令行
winform开发 或 控制台开发 的时候,我们经常希望自己的程序可以留一些小“后门” 或方便调试,或特殊需求,或仅为了好玩; 比如 我做了一个 扫码登录 的功能,但是处于测试状态,通过命令行打开此功能
可能大家会觉得很简单 Environment.GetCommandLineArgs().Contains("--debug") 不就行了吗? 但是如果增加一个功能,比如这样
所以我写了一个解析命令行的类
StartupCommands
基本规则是 --完整指令名[:值] 或 -短指令[:值] 完整指令名 匹配 类中的属性名称(不区分大小写) 短指令 通过 ShortAttribute 来指定(区分大小写) 值 不存在时默认为 true
这样用
嗯。。。就这么点。。。
如果文章可以帮到你,别忘了帮我点一下喜欢,让更多的人看到
winform开发可以使用IOC容器吗
winform开发可以使用IOC容器IOC容器是构建一个应用程序非常重要的组成部分,在很多的 IoC-Invertion of Control ,即控制反转,是一种程序设计思想,在彻底了解Ioc容器之前我们先要来理解一些重要的。泛型在实际开发中的一次小应用C#2.0 Singleton 的实现. Net Framwork强... Net 中IE 使用 WinForm控件的 使用 心得。动态加载用户控件的组件!
C# WinForm开发书店管理系统第五节
Visual Studio版本:Enterprise 2015
.net 版本:.NET Framework4.5
Sqlserver版本:2008R2
01
本节内容
在第四节中,主要讲了登录用户的增删改查页面,本节课,我们来看一下书籍的录入。简单的来说就是书籍进销存之前,先要录入书籍信息,然后才可以对数据进行进销存操作。
02
新建书籍表
首先要新建书籍,基本信息为书号,书名,出版社,作者和售价。这里以书号作为唯一值,不能重复。数据表如下:
BookID:书籍ID,int类型,自增。
BookNO:书号,主键,唯一值。
BookName:书名
BookPress:出版社
BookAuthor:作者
CreateTime:创建时间
BookCount:数量
BookPrice:价格
BookStatus:状态,1正常,0已下架
03
页面设计
书籍管理中新增书籍列表菜单。
书籍列表中可以查看当前所有书籍的信息,可以新增,修改和删除。
04
功能代码
新增页面可以添加书籍信息,只需填写书号,出版社,书名,作者和价格,数量是不需要填写的,后面可以根据进销自动计算。防止人工输错。保存代码:
因为新增和编辑都是同一个页面,所以会有Type的参数来区分新增和编辑,Type等于1是新增,Type等于2是编辑。页面的关闭,拖动前面章节有介绍就不重复了。
上面是列表页面中的新增和编辑,可以看到新增时,Type的值给的是1,更新时Type的值是2,同时还给了BookID,这样就可以通过BookID找到对应书籍的信息。
05
运行结果
06
总结预告
回复“ C#WinForm界面设计教程 ”获取gitee源码下载地址,主要是WinForm基本控件的使用讲解。这个基本控件的使用都有介绍。
请教devexpress的winform界面开发基本步骤
安装好DevExpress后,开发DevExpress窗体应用的步骤如下:
1)利用DevExpress提供的向导模板,建立DevExpress的Winform项目
2)建立好项目后,可以看到DevExpress提供的各种窗体控件
3)向窗体拖入一个命令按钮SimpleButton,将其Text属性修改“关闭”
4)鼠标双击命令按钮,编写后台代码
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 DXApplication3{ public partial class Form1 : DevExpress.XtraEditors.XtraForm { public Form1() { InitializeComponent(); } private void simpleButton1_Click(object sender, EventArgs e) { // 关闭窗口 this.Close(); } }}5)运行,显示DevExpress风格的窗体。单击“关闭”可以关闭窗口
1、首先准备好devExpress控件,然后重新打开VS,在菜单栏会显示如图中的菜单。包含的控件非常多,可以在工具箱看到。
2、为自己的窗体添加可以设置工具条的控件。在工具箱中找到如图所示的控件,添加进自己的窗体。
3、添加该控件后,在窗体的下方会看到如图所示的控件barManager1,表示窗体中已经添加了这种控件。
4、然后右键点击该控件,点击自定义“Customize”按钮。
5、打开如图所示窗体,点击箭头所指的地方,点击New可以新建一个工具条,并且可以设置名称。
6、新建后,会自动在窗体的某个随机位置添加了一个工具条,但是现在还是空的。需要为其添加按钮,点击Add添加即可,然后就跟普通的按钮一样使用了。
请教devexpress的winform界面开发基本步骤
安装好DevExpress后,开发DevExpress窗体应用的步骤如下:
1)利用DevExpress提供的向导模板,建立DevExpress的Winform项目
2)建立好项目后,可以看到DevExpress提供的各种窗体控件
3)向窗体拖入一个命令按钮SimpleButton,将其Text属性修改“关闭”
4)鼠标双击命令按钮,编写后台代码
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 DXApplication3{ public partial class Form1 : DevExpress.XtraEditors.XtraForm { public Form1() { InitializeComponent(); } private void simpleButton1_Click(object sender, EventArgs e) { // 关闭窗口 this.Close(); } }}
5)运行,显示DevExpress风格的窗体。单击“关闭”可以关闭窗口
0 C#WinForm开发权限管理历程之权限管理概述
简单的权限管理一般包括三部分
用户管理可以维护可以进入系统操作的用户,一般包括用户ID,用户名称,用户密码等几个字段。
用户管理一般介绍的比较多我就不详细介绍了。
功能管理可以维护系统提供的全部功能,一般包括功能ID,功能名称,WinForm等。
权限管理用来给用户分配功能权限,一般包括用户ID,功能ID,操作次数,最后操作时间等。
复杂点的权限管理还会包括角色管理、角色权限、用户角色、数据权限管理。
角色管理就是维护角色。一般包括角色ID、角色名称等。
角色权限用来给角色授权。一般包括角色ID、功能ID等。
用户角色用来给用户分配角色,一般包括用户ID、角色ID等。
数据权限管理就比较复杂点,首先业务数据里要包含用户ID,用户上面还有组织机构、角色等。组织机构数据权限、角色数据权限、用户数据权限等。
1 C#WinForm开发权限管理历程之三层架构
2 C#WinForm开发权限管理历程之新建项目
3 C#WinForm开发权限管理历程之Form1完善
4 C#WinForm开发权限管理历程之主控窗体功能实现
5 C#WinForm开发权限管理历程之功能管理