1、如图实现整数计算器

ComboBox控件:

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

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

TextBox:

对TextBox的输入文本有限制:

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

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

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

实现方法

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

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

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

使用 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. dip,px,sp区别及使用场景

    1.区别 dip(device independent pixels)——设备独立像素:这个和设备硬件有关,一般哦我们为了支持WCGA.HVGA和QVGA推荐使用这个,不依赖于像素.等同于dp. px ...

  2. css3记事

    1.文字超出省略 text-overflow: ellipsis white-space: nowrap; overflow: hidden; text-overflow: ellipsis; *父元 ...

  3. 编译原理LL(1)文法

    从左向右扫描输入,然后产生最左推导(就是每次都把最左边的非终结字符用产生式代替). (一)First集合 比如有产生式 A-> + T | - P , 当我们读到串为 +开头的时候,我们可以很直 ...

  4. 13 Timer和TimerTask

    下面内容转载自:http://blog.csdn.net/xieyuooo/article/details/8607220 其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了ru ...

  5. Debian 9 启动后进入命令行

    打开 default grub 配置 $ sudo vi /etc/default/grub 修改以下3处内容 1. 找到行 GRUB_CMDLINE_LINUX_DEFAULT="quie ...

  6. HDU1596 find the safest road

    find the safest road XX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一 ...

  7. oracle建表时设置递增序列:序列,触发器

  8. Sumblime Text 2/3 插件安装方法

    使用Package Control组件安装 按Ctrl+`调出console(注:安装有QQ输入法的这个快捷键会有冲突的,输入法属性设置-输入法管理-取消热键切换至QQ拼音): 如果是sublime ...

  9. Universal App图片文件和图片byte[]信息转换为bitmap

    1. 打开图片文件并转换为BitmapImage类 首先要做的自然是打开一个图片文件了,可以使用FileOpenPicker来手动选择图片,总之能拿到一个StorageFile都行. //打开图片选择 ...

  10. Swift函数_外部参数名,

    //1________________ /** *没使用外部参数名的函数 */ func inputScore(name:String,score1:Int,score2:Int) { } /** * ...