1、如图实现整数计算器

ComboBox控件:

Items属性:添加集合中的项。

this.comoper.Items.AddRange(new object[] {
"+",
"-",
"x",
"/"});

TextBox:

对TextBox的输入文本有限制:

1)只能输入数值型(整数和小数);

2)小数点不能开头,小数只能输入一位;

3)不满足要求的输入统一不接受。

实现方法

使用TextBox的KeyPress事件:在控件有焦点的情况下按下键时发生。

KeyChar属性获取或设置与按下的键对应的字符。

KeyPress 事件不能由非字符键引发;但是非字符键能够引发 KeyDown 和 KeyUp 事件。

使用 KeyChar 属性采样运行时的键击,以及使用或修改常用键击的一个子集。

若要仅在窗体级别处理键盘事件而不允许其他控件接收键盘事件,请将窗体的 KeyPress 事件处理方法中的 KeyPressEventArgs. Handled 属性设置为true。

//处理键盘按键盘事件,当前时间焦点在TextBox控件级别
private void textnum1_KeyPress(object sender, KeyPressEventArgs e)
{
//通过sender得到触发该事件的控件
TextBox currtextbox = sender as TextBox; if (e.KeyChar<'' || e.KeyChar>'')
{
//用户输入的不是数字
e.Handled = true;
}
//用户是否输入了退格键
if (e.KeyChar==)
{
e.Handled = false;
}
//让用户输入小数点,判断是不是小数点
if(e.KeyChar==)
{
//只让用户输入一个小数点,检测当前文本框是否有小数点
//报告指定 Unicode 字符或字符串在此实例中的第一个匹配项的从零开始的索引。 如果未在此实例中找到该字符或字符串,则此方法返回 -1。
if (currtextbox.Text.IndexOf(".") == -)
{
  //小数点不能在第一位,注意字符是单个单个输入的
                    //SelectionStart获取或设置文本框中当前输入的文本起始点。
if(currtextbox.SelectionStart>)
{
e.Handled = false;
}
} }
}

using System;
using System.Windows.Forms; public class Form1: Form
{
public Form1()
{
// Create a TextBox control.
TextBox tb = new TextBox();
this.Controls.Add(tb);
tb.KeyPress += new KeyPressEventHandler(keypressed);
} private void keypressed(Object o, KeyPressEventArgs e)
{
// The keypressed method uses the KeyChar property to check
// whether the ENTER key is pressed. // If the ENTER key is pressed, the Handled property is set to true,
// to indicate the event is handled.
if (e.KeyChar == (char)Keys.Return)
{
e.Handled = true;
}
} public static void Main()
{
Application.Run(new Form1());
}
}

2、图片查看器

身份证号码的校正:

      private bool CheckCardId(string id)
{
//校验位的权值或编码值
int[] wQuan = { , , , , , , , , , , , , , , , , };
string checkWei = "10X98765432";
string number17 = id.Substring(, );
string number18 = id.Substring();
int sum=;
for(int i=;i<;i++)
{
sum+=Convert.ToInt32(number17[i].ToString())* wQuan[i];
//char类型不能直接转换成整形(实际转换成对应的ascii),先tostring在转换 }
int mod = sum % ;
string result = checkWei[mod].ToString();
if(number18.Equals(result,StringComparison.OrdinalIgnoreCase))
{
return false;
}
else
{
return true;
}
} private void btnView_Click(object sender, EventArgs e)
{
//身份证可能是15位或者18位
//15位身份证组号:省(20)市(2)县(2)年(2)月(2)日(2)+3序列号(奇男偶女)
//18位身份证:第一:出生年前加上19 第二点:第18位校验位,从前17位计算而来
string id = pidid.Text;
int age = ;
int year = ;
if (id.Length == )
{
year = Convert.ToInt32(id.Substring(, )) + ;
}
else if (id.Length == )
{
if(!this.CheckCardId(id))
{
MessageBox.Show("身份证输入有误,请检查");
return;
}
year = Convert.ToInt32(id.Substring(, ));
}
else
{
MessageBox.Show("身份证长度输入有误,请重新输入");
return;
}
age = DateTime.Now.Year - year;
if (age >= )
{
pic.Visible = true;
}
else
{
MessageBox.Show("你太小了,回家看动画片吧");
}
}

3、访问网址

WebBrowser类:使用户可以在窗体内导航网页。

private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Navigate(button1.Text);
}

4.树形控件增删该查

TreeView:

与上图对应的方法:

   private void button1_Click(object sender, EventArgs e)
{
treeView1.HideSelection = false;
MessageBox.Show(treeView1.SelectedNode.Text); } private void button2_Click(object sender, EventArgs e)
{
//MessageBox.Show("根节点节点的数量{0}", treeView1.Nodes.Count.ToString());
//treeView1.Nodes.Add("add");根节点添加
//treeView1.Nodes[0].Nodes[0].Nodes.Add("王晓东");//添加到一级节点下
if(treeView1.SelectedNode!=null)
{
treeView1.SelectedNode.Nodes.Add(textBox1.Text);
}
if(treeView1.SelectedNode==null)
{
treeView1.Nodes.Add(textBox1.Text);
} } private void TreeView_Load(object sender, EventArgs e)
{
treeView1.ExpandAll();//展开节点
treeView1.Nodes[].ImageIndex = ;
} private void button4_Click(object sender, EventArgs e)
{
if(treeView1.SelectedNode!=null)
{
//treeView1.SelectedNode.ExpandAll();//展开当前节点下的所有节点
treeView1.SelectedNode.Expand();//展开当前节点下的所子节点
}
} private void button3_Click(object sender, EventArgs e)
{
if (treeView1.SelectedNode != null)
{
treeView1.SelectedNode.Collapse();//关闭当前节点下的所有节点
}
} private void button5_Click(object sender, EventArgs e)
{
treeView1.SelectedNode.Remove();
} private void button6_Click(object sender, EventArgs e)
{
string str="选中的语言";
foreach(TreeNode tn in treeView1.Nodes[].Nodes[].Nodes)
{
if(tn.Checked==true)
{
str = str + tn.Text;
}
}
MessageBox.Show(str);
} private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
foreach (TreeNode tn in e.Node.Nodes)
{
tn.Checked = e.Node.Checked;
}
}

winform基础控件-例子学习的更多相关文章

  1. winform基础控件总结

    转自:http://www.cnblogs.com/top5/archive/2010/04/29/1724039.html 基础 - 常用控件 C# WinForm开发系列 - CheckBox/B ...

  2. iOS界面设计之基础控件的学习 --- UITextField

    学习iOS界面设计也有段时间了,每次写到一些基础控件(如:UILable . UITextField)的时候就深觉应该总结一个函数来实现这些基础控件的属性设置,所以下面就是我对UITextField的 ...

  3. 【Android开发学习笔记】【第四课】基础控件的学习

    通过一个简单的例子来学习下面几种控件: 1.TextView:简单的文本显示控件 2.EditText:可以编辑的文本框 3.Button:按钮 4.Menu:这里指的是系统的Menu 5.Toast ...

  4. 在DevExpress程序中使用Winform分页控件直接录入数据并保存

    一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数 ...

  5. React Native环境搭建以及几个基础控件的使用

    之前写了几篇博客,但是没有从最基础的开始写,现在想了想感觉不太合适,所以现在把基础的一些东西给补上,也算是我从零开始学习RN的经验吧! 一.环境搭建 首先声明一下,本人现在用的编辑器是SublimeT ...

  6. Winform DevExpress控件库(一) DevExpress控件库的安装与新建第一个DevExpress项目

    前言:因为这段时间要接触到DevExpress控件库,而我本身甚至对winform的控件都了解甚少,所以处在学习中,写下博客主要是为了方便后期的回顾,当然也可以给一些新人第一次接触时做为学习的参考,以 ...

  7. Python Tkinter基础控件入门实例

    分享一个Python Tkinter基础控件用法的入门例子,包括窗口的显示.显示内置图片.弹出窗口.菜单等. 例子,Python Tkinter基础控件的用法 # -*- coding: utf-8 ...

  8. winform窗体控件(全)

    回顾跟补充下除了昨天那常用6个其他的winform窗体控件作用 1:Button:按钮 (1)AutoSize:如果是True的情况下,内容将会撑开:False的话会另起一行 (2)Enabled: ...

  9. C#实现WinForm DataGridView控件支持叠加数据绑定

    我们都知道WinForm DataGridView控件支持数据绑定,使用方法很简单,只需将DataSource属性指定到相应的数据源即可,但需注意数据源必须支持IListSource类型,这里说的是支 ...

随机推荐

  1. (Android+IOS)正在做一个新闻App,做的差不多了,听听大家的建议 (图)

    (Android+IOS)正在做一个新闻App,做的差不多了,听听大家的建议! 新闻采集器做好了,前端展示APP界面感觉还不是很好,还需要改进改进,希望发布(Android和IOS版本)前听听大家的建 ...

  2. Jexus高级功能设置

    我们对服务器软件Jexus作了简单的介绍,同时我们也对Jexus的整体配置作了详细的讲解,介绍了Jexus的进程守护工具"jws.guard",相信各位读者对于Jexus应该已经有 ...

  3. (转)mysql双机热备的实现

    mysql双机热备的实现 原文:http://www.zjian.me/web/php/mysql%E5%8F%8C%E6%9C%BA%E7%83%AD%E5%A4%87%E7%9A%84%E5%AE ...

  4. ubuntu 16.04通过源码方式安装nginx

    1.下载nginx源码包 wget  http://nginx.org/download/nginx-1.11.12.tar.gz 2.解压该tar包 tar zxvf nginx-1.11.12.t ...

  5. 解决securecrt连接centos使用VIM编辑中文时乱码

    vim ~/.vimrc 添加两行 set encoding=utf-8 set fileencodings=ucs-bom,utf-8,cp936

  6. PHP之string之addcslashes()函数使用

    addcslashes (PHP 4, PHP 5, PHP 7) addcslashes - Quote string with slashes in a C style addcslashes - ...

  7. To B服务想做移动化?腾讯云案例了解一下

    本文由 腾讯云助手团队 发布于 腾讯云云+社区 | 导语:腾讯云那么多资源和服务,就不能手机管理吗? 能. 当用户在使用To B服务时,往往会遇到各种各样的限制: 1.操作难度:涉及各种权限.多重验证 ...

  8. Weblogic Maven

    从weblogic 10.3.4开始支持maven deploy部署   步骤如下: 1.构建weblogic-maven-plugin jar 在D:\oracle\Middleware\wlser ...

  9. IOS Runtime属性关联实现表格编辑文本

    要实现在表格里编辑文本, 表格让我想到了CollectionView,文本让我想起TextView, 做之前想了好久怎么样来获得编辑的是哪个TextView,要获取对应的IndexPath啊,想着之前 ...

  10. 激活 IntelliJ IDEA

    1.点击下面的链接下载 JetbrainsIdesCrack-4.2-release.jar 链接:https://pan.baidu.com/s/1eNY_bwxF7Efl4QG0yh6l1A  提 ...