注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

Windows应用高级编程笔记(2)  

2011-10-02 11:40:10|  分类: C# & .NET |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

最近一直比较忙,学习的时间就显得比较少了,刚忙完一个小项目,又淘到一本好书,也是红皮书系列的,中文翻译是《Windows应用高级编程——C#编程篇》,翻译版由清华大学出版社出版。这本书说的比较详细,将许多书籍中细微末节的地方都说的比较清楚,采用面向对象的原则来介绍如何进行Windows编程,虽然带有“高级”字样,但是阐述详细,步骤清晰,对于一个初学者也是能够看得懂的。
Windows应用高级编程笔记(1) - Castor - 趁年轻,多折腾~~

============================================================================================

界面设计原则:关键是让用户尽可能简单、直观地使用它。让应用程序使用和以前大多数应用程序类似的方式来运行是一个很好的倾向。还要平衡一下应用程序的熟悉性和独特性,让其简单有趣。了解用户的心理和使用习惯。
Anchor属性:将某个控件绑定到容器的边缘,注意区别于Dock属性。
TextBox和RichTextBox都是从Windows.Forms.TextBoxBase继承来的,该类属性如下:
AcceptsTab:当收到Tab时是当制表符处理还是将焦点移动到下一个控件。
Modified:内容被用户修改过就会返回True
WordWrap:说明一个多行的文本框是否有自动换行的功能。
还提供了剪贴板操作功能,Cut(),Copy(),Paste()方法
ListBox和ComboBox都继承自System.Windows.Forms.ListControl控件
SelectedIndex和SelectedIndices的关系,与SelectedItem和SelectedItems的关系类似,SelectionMode决定用户选项的模式,注意MultiSimple和MultiExtended的区别,前者是点击选择,再点击取消,后者需要配合Shift键和Ctrl键组合使用。
ComboBox控件的DropDownStyle属性,决定了是否能够编辑。,Simple是文本可编辑,列表总显示,Dropdown是文本可编辑,单击打开选项,DropDownList则是文本不可编辑,单击打开选项。
另一种ListBox的变种是CheckedListBox控件,结合了复选框来显示选项。
基于按钮的控件
Button、CheckBox、RadioButton控件的基类都是ButtonBase类。
CheckBox的Appearance属性设置空间的外观,可以是按下的(Button),也可以是复选框形式的(Normal)。ThreeState可设置为三状态(还有一个是方形的),如下图:

Windows应用高级编程笔记(2) - Castor - 趁年轻,多折腾~~

 对应的属性CheckState属性有三个Unchecked,Checked和Indeterminate注意后两种返回的Checked属性都是True。
下面的例子演示如何使用CheckState,其中包括了事件绑定和遍历控件的方法。
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        //添加事件响应函数
        checkBox2.Click += new System.EventHandler(this.ChildOption_Click);
        checkBox3.Click += new System.EventHandler(this.ChildOption_Click);
        checkBox4.Click += new System.EventHandler(this.ChildOption_Click);
    }

    private void checkBox1_Click(object sender, EventArgs e)
    {
        checkBox2.CheckState = checkBox1.CheckState;
        checkBox3.CheckState = checkBox1.CheckState;
        checkBox4.CheckState = checkBox1.CheckState;
    }

    private void ChildOption_Click(object sender, EventArgs e)
    {
        int CheckedOption = 0;
        foreach (Control ctrl in groupBox1.Controls)
        {
            if (ctrl.GetType() == typeof(CheckBox) && ctrl.Name != checkBox1.Name)
            {
                CheckBox cb = ctrl as CheckBox;
                if (cb.Checked)
                    CheckedOption++;
            }
        }
        if (CheckedOption == groupBox1.Controls.Count - 1)//子项全选
            checkBox1.CheckState = CheckState.Checked;
        else if (CheckedOption == 0)
            checkBox1.CheckState = CheckState.Unchecked;//子项全不选
        else
            checkBox1.CheckState = CheckState.Indeterminate;//选择部分
    }
}
运行可以知道子项在三种不同状态下导致上级选项的变化:

Windows应用高级编程笔记(2) - Castor - 趁年轻,多折腾~~Windows应用高级编程笔记(2) - Castor - 趁年轻,多折腾~~ Windows应用高级编程笔记(2) - Castor - 趁年轻,多折腾~~

TrackBar和ProgressBar控件,分别是滑动条和进度条控件,用于图形化显示某个值的大小。

  评论这张
 
阅读(664)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016