Winform的学习
昨天由于一些原因没有上课啦,虽然也看啦一些东西,但是感觉太少也就没有来啦,嘿嘿,今天认真地了解啦winform,学习了一些控件的使用,但是感觉好多属性知道怎么用的,却还是记得不太清楚,感觉看到啦知道,之后可能又会全然忘记啦,虽然这个winform已经不再用啦,但是还想是想好好学习下啦,只怕那天再次遇到啦还要自己在找资料啦,所以我还是详细的总结下啦
一.弹窗
在Form中弹出另外一个窗体,首先建立一个Form窗体,把Form转变为容器改变其属性为IsMdiContainer,改变其属性如下:
 
     
然后在工具中选取MenuStrip工具,添加其标题,建立其他子窗体:

在父窗体中实现弹窗功能代码如下:
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
private void 弹出主窗体ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.MdiParent = this;
Form3 f3 = new Form3();
f3.MdiParent = this;
Form4 f4 = new Form4();
f4.MdiParent = this;
Form5 f5 = new Form5();
f5.MdiParent = this;
Form6 f6 = new Form6();
f6.MdiParent = this;
Form7 f7 = new Form7();
f7.MdiParent = this;
Form8 f8 = new Form8();
f8.MdiParent = this; f2.Show(); f3.Show(); f4.Show();
f5.Show(); f6.Show(); f7.Show();
f8.Show();
} private void 弹出纵向主窗体ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.LayoutMdi(MdiLayout.TileVertical);
} private void 弹出横向主窗体ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.LayoutMdi(MdiLayout.TileHorizontal);
}
}
二.图片控件PictureBox的使用
设计Form窗体如下所示,添加一个PictureBox控件,然后选择添加两个按钮,最好下载一组图片以便于备用,然后实现其点击按钮上一张可以在PictureBox中显示上一张图片,点击按钮下一张,可以再PictureBox中显示下一张图片,代码如下:

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int i = ;
private void Form1_Load(object sender, EventArgs e)
{
string[] arraypath = Directory.GetFiles(@"G:\image");
this.pictureBox1.Image = Image.FromFile(arraypath[]);
}
private void btnpre_Click(object sender, EventArgs e)
{
string[] arraypath = Directory.GetFiles(@"G:\image"); if (i == )
{
this.pictureBox1.Image = Image.FromFile(arraypath[arraypath.Length - ]);
i = arraypath.Length - ;
}
else
{
i--;
this.pictureBox1.Image = Image.FromFile(arraypath[i]);
}
}
private void button2_Click(object sender, EventArgs e)
{
string[] arraypath = Directory.GetFiles(@"G:\image"); if (i == arraypath.Length - )
{
this.pictureBox1.Image = Image.FromFile(arraypath[]);
i = ;
}
else
{
i++;
this.pictureBox1.Image = Image.FromFile(arraypath[i]);
}
}
}
三.图片幻灯片形式播放
在Form窗体中选择添加控件PictureBox,然后添加一控件Timer即可,然后设置Timer的属性其属性,实现代码如下:

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string[] arraypath = Directory.GetFiles(@"G:\image");
this.pictureBox1.Image = Image.FromFile(arraypath[]);
}
int i = ;
private void timer1_Tick(object sender, EventArgs e)
{
string[] arraypath = Directory.GetFiles(@"G:\image");
i++;
if (i == arraypath.Length)
{
i = ;
this.pictureBox1.Image = Image.FromFile(arraypath[i]);
}
else
{
this.pictureBox1.Image = Image.FromFile(arraypath[i]);
}
}
}
四.richBox。
简单的说, 比普通textbox多的功能: 可以为每个字设定独立的字体,字号,颜色等..可以添加图片, 可以添加OLD对象.还比textbox多了很多种方法,比如直接打开文件,打印文件等。下面简单的实现下其功能:新建一个Form窗体,然后选择一个richBox控件,在文本框中选择写入一些文本,然后实现其事件,格式以及代码如下:

private void richTextBox1_TextChanged(object sender, EventArgs e)
{
this.richTextBox1.AppendText("我被你写入了这个对话框里面");
}
五.comboBox的使用
combobox在这里使用时间需要注意的是,仅仅能够选择单项。

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string[] strs = {"--请选择下拉项--", "C语言也能干大事","在校不迷茫","毕业即辉煌" };
this.comboBox1.Items.AddRange(strs);
this.comboBox1.SelectedItem = this.comboBox1.Items[];
}
}
六.textbox和webBrowser的简单使用
private void button1_Click(object sender, EventArgs e)
{
string urlpath = this.textBox1.Text;
Uri uri = new Uri("http://"+ urlpath);
this.webBrowser1.Url = uri;
}
实现输入网址可以打开其网页的功能,例如:打开如鹏网。

七.实现区域的三级分类
在Form窗体上面选择三个textbox即可,然后实现其功能,代码入下:
public partial class Form1 : Form
{
string[] Sheng = { "--请选择省份--", "河南省", "湖南省" };
string[] Henancity = { "--请选择城市--", "郑州", "洛阳", "开封" };
string[] HuNancity = { "--请选择城市--", "长沙", "湘潭", "株洲" }; string[] zhengzhouArea = {"高新区","中原区","金水区","管城区","二七区","惠济区","郑东新区","航空港区","经开区" };
string[] changshaArea = {"雨花区","芙蓉区","高桥区","岳麓区","韶山区" };
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.cmbsheng.Items.AddRange(Sheng);
this.cmbsheng.SelectedIndex = ;
}
private void cmbsheng_SelectedIndexChanged(object sender, EventArgs e)
{
int index = this.cmbsheng.SelectedIndex;
switch (index)
{
case :
this.cmbcity.Items.Clear();
this.cmbcity.Items.AddRange(Henancity);
this.cmbcity.SelectedIndex = ; break;
case :
this.cmbcity.Items.Clear();
this.cmbcity.Items.AddRange(HuNancity);
this.cmbcity.SelectedIndex = ;
break;
default:
break;
}
}
private void cmbcity_SelectedIndexChanged(object sender, EventArgs e)
{
int index=this.cmbcity.SelectedIndex;
object selecttext = this.cmbcity.SelectedItem; switch (index)
{
case :
if (selecttext.Equals("郑州"))
{
this.cmbarea.Items.Clear();
this.cmbarea.Items.AddRange(zhengzhouArea);
this.cmbarea.SelectedIndex = ;
}
else if(selecttext.Equals("长沙"))
{
this.cmbarea.Items.Clear();
this.cmbarea.Items.AddRange(changshaArea);
this.cmbarea.SelectedIndex = ;
}
break;
case :
this.cmbarea.Items.Clear();
this.cmbarea.Items.AddRange(null);
this.cmbarea.SelectedIndex = ;
break;
case :
this.cmbarea.Items.Clear();
this.cmbarea.Items.AddRange(null);
this.cmbarea.SelectedIndex = ;
break;
}
}
}
八.用ListBox和PictureBox实现其在ListBox中选择图片的序列,在picturebox中显示图片
private void Form1_Load(object sender, EventArgs e)
{
string[] imagepath = Directory.GetFiles(@"G:\image");
string[] filename=new string[imagepath.Length];
for (int i = ; i < imagepath.Length; i++)
{
string path = Path.GetFileNameWithoutExtension(imagepath[i]);
filename[i] = path+"\r\n";
}
listBox1.Items.AddRange(filename);
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int index = this.listBox1.SelectedIndex;
this.pictureBox1.Image = Image.FromFile(@"G:\image\" + index + ".jpg");
}
结果如下:

九.在messagebox消息框小时选择的listBox的内容
private void Form1_Load(object sender, EventArgs e)
{
string[] strs = {"","","" };
listBox1.Items.AddRange(strs);
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
var selected= this.listBox1.SelectedItems;
foreach (var item in selected)
{
MessageBox.Show(item.ToString());
}
}
其运行结果如下:

好啦,今天在云和学院学习就这些啦,虽然有点多吧,但是在winform这方面也不需要过多的学习吧,所以就讲啦好多啦,只是让我们理解熟悉啦,嘿嘿,winform的学习感觉还好啦,只是在每个控件的属性上面该设置哪个属性估计记得是不太清楚,我想是不熟悉的原因吧。
Winform的学习的更多相关文章
- 事件和winform的学习
		记得现在已经不在学习winform啦,可是我们为什么还是学习啦,我感觉就是帮助我们往下一个层次进发啦,因为从控制台直接开始进入webform的学习,我们很难接受啦,估计效率也不高啦, ... 
- WinForm多线程学习文档
		基础篇 怎样创建一个线程 受托管的线程与 Windows线程 前台线程与后台线程 名为BeginXXX和EndXXX的方法是做什么用的 异步和多线程有什么关联 WinForm多线程编程篇 我的多线程W ... 
- 【转】WinForm多线程学习文档
		源地址:https://www.cnblogs.com/jianglai11/articles/1708330.html 想学习更多,看<Windows 核心编程> 
- c#winform初学习
		不用思维导图了直接拍照笔记吧..参考视频:传智播客.net第十四天,参考图书c#图解教程第四版(人民邮电出版社) 对对象初始化赋值 工具箱中的每一个控件都相当于一个类 在窗体中拖一个控件就相当于new ... 
- winForm入门学习
		Windows窗体 属性: name:对象的名称 windowsState:初始化窗体的大小,Normal,Minimized,Maximized StartPosition:窗体起始位置,Manua ... 
- WinForm 窗体间参数传递
		http://www.cnblogs.com/xinjian/archive/2011/09/15/2177851.html 本人刚刚接触Winform ,学习之后分享下心得. winform 窗体与 ... 
- .net社区
		英文社区: 名称:MSDN 地址:http://msdn.microsoft.com/zh-cn/default.aspx 描述:这个网站是大家学.Net的初始网站,也是.net方面官方和权威的资料, ... 
- 简单bat语法
		一.简单批处理内部命令简介 1.Echo 命令 打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置. 语法 echo [{on off}] [message] ... 
- Technology_Roadmap
		2016年1月23日 前端技术: - HTML CSS JavaScript JQuery 操作系统: - Linux (CentOS) 数据库: - SQLServer MySQL 开源前端框架: ... 
随机推荐
- FreeRTOS 低功耗之待机模式
			STM32F103 如何进入待机模式在 FreeRTOS 系统中,让 STM32 进入待机模式比较容易,调用固件库函数PWR_EnterSTANDBYMode 即可. STM32F103 如何退出待机 ... 
- pyqt布局管理器
			有时候,碰到错误: QWidget::setLayout: Attempting to set QLayout “” on MainWindow “”, which already has a lay ... 
- 基于css3炫酷页面加载动画特效代码
			基于CSS3实现35个动画SVG图标.这是一款基于jQuery+CSS3实现的SVG图标动画代码.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class=&qu ... 
- php和js以及ts的传值
			egret是用ts写h5游戏,然后编译为js,有些数据想在加载时由服务端生成. 一种方法用网络请求,另外一种方法直接传值. 网络请求如果在运行中,有数据交互,其实是个比较好的选择. 而我只是在初始化时 ... 
- C语言  ·  用宏求球的体积
			算法提高 7-1用宏求球的体积 时间限制:1.0s 内存限制:256.0MB 问题描述 使用宏实现计算球体体积的功能.用户输入半径,系统输出体积.不能使用函数,pi=3.141592 ... 
- yarn 用户导致的被挖矿   启用Kerberos认证功能,禁止匿名访问修改8088端口
			用户为dr.who,问下内部使用人员,都没有任务在跑: 结论: 恭喜你,你中毒了,攻击者利用Hadoop Yarn资源管理系统REST API未授权漏洞对服务器进行攻击,攻击者可以在未授权的情况下远程 ... 
- /etc/fstab下的挂载类型defaults默认参数
			[root@ob2 data]# cat /etc/fstab -98c0-59dbbcf8b040 / ext4 defaults UUID=e4ab7a0c-500f--bcd2-a77be0ce ... 
- Spring的p标签
			看Spring in action的时候看过p标签,可惜这东西不用就忘. p标签是为了简化setter的注入而引入的. 用法: p:属性 = "{值}" p:属性-ref = &q ... 
- Oracle数据库表空间与用户的关系是 ( )
			Oracle数据库表空间与用户的关系是 ( )? A.一对一 B.一对多 C.多对一 D.多对多 解答: D 一个用户可以使用一个或多个表空间,一个表空间也可以供多个用户使用. 
- 【转】IIS日志-网站运维的好帮手
			对于一个需要长期维护的网站来说,如何让网站长久稳定运行是件很有意义的事情. 有些在开发阶段没有暴露的问题很有可能就在运维阶段出现了,这也是很正常的. 还有些时候,我们希望不断地优化网站,让网站更快速的 ... 
