• Winform 基础


    1:winform应用程序是一种智能客户端技术,我们可以使用winform应用程序,帮助我们获得信息或者传输信息等。

    2:属性

    Name:在后台要获得前台的控件对象,需要使用Name属性。

    Visible:指示一个控件是否可见。

    Enabled:指示一个控件是否可用。

    3:事件:发生一件事情

    注册事件:双击控件注册的都是控件默认被选中的那个事件。

    4:主窗体

    在Main函数当中创建的窗体对象,我们称之为这个窗体应用程序的主窗体,也就意味着,当你将主窗体关闭后,整个应用程序都关闭了。

    5:TextBox控件

    WordWrap: 指示文本框是否换行。

    PaswordChar: 让文本框显示一个单一的字符

    ScollBars: 是否显示滚动条

    事件:TextChanged 当文本框中的内容发生改变的时候出发这个事件。

    6:跑马灯练习

    string str="abcde";

    str=str.Substring(1)+str.Substring(0,1)

    7:Timer

    在指定的时间间隔内做一件指定的事情。

    8:单选和多选

    checked: 指示这个控件是否处于选中状态。

    默认情况下,在一个窗体中,所有的单选按钮只允许选中一个,可以使用groupbox进行分组。

    9:MDI窗体的设计

    1:首先确定一个父窗体。将IsMdiContainer设置为true

    2:创建子窗体,并且设置他们的父窗体

    ------------------------------------------------------
    1:Directory操作文件夹

    CreateDirectory 创建文件夹

    Delete 删除文件夹

    Move 剪切文件夹

    Exist 判断是否存在

    GetFiles 获得指定的目录下所有文件的全路径

    Directory.GetFiles(string path,string searchPattern); //searchPattern:要与path中的文件名匹配的搜索字符串

    GetDirectory 获得指定目录下所有文件夹的全路径

    2:WebBrowser浏览器控件
    url

    3:ComboBox下拉框控件

    DropDownStyle:控制下拉框的外观样式
    命名规则:cbl+...

    4:点击更换图片

    1):在程序加载的时候,将指定图片文件夹中所有的图片文件名读取到ListBox中

    OpenFileDialog:打开对话框

    SaveFileDialog:保存对话框

    FontDialog:字体对话框

    ColorDialog:颜色对话框

    5:进程类

    //using System.Threading.Tasks;

    Process 

    item.Kill(); //杀掉进程

    Process.Start("calc"); //通过进程打开一些应用程序

    6:线程类

    //跨线程操作:

    Control.CheckForIllegalCrossThreadCalls //是否捕获对错误线程的调用

    //Form_FormClosing //点击关闭窗体的时候,判断新线程是否为null

    thread th=new thread();

    th.Abort();

    注意“方法重入”的问题:所谓的方法重入,是一个有关多线程编程的概念。程序中多个线程同时运行时,就可能发生同一个方法被多个线程同时调用的情况。

    当这个方法中存在一些非线程安全的代码时,方法重入就会导致数据不一致的情况,这是非常严重的bug。


    Object obj = new Object();
    //开辟内存
    //调用构造函数
    //同步块索引(负数)

    System.Threading.Monitor.Enter(obj);
    try
    {
      DoSomething();
    }
    finally
    {
      System.Threading.Monitor.Exit(obj);
    }

    lock这段代码是怎么运行的.lock语句根本使用的就是Monitor.Enter和Monitor.Exit,也就是说lock(o)时执行Monitor.Enter(this),大括号结束时执行Monitor.Exit(this).

    它的意义在于什么呢,对于任何一个对象来说,他在内存中的第一部分放置的是所有方法的地址,第二部分放着一个索引,他指向CLR中的SyncBlock Cache区域中的一个SyncBlock.什么意思呢?

    就是说,当你执行Monitor.Enter(Object)时,如果object的索引值为负数,就从SyncBlock Cache中选区一个SyncBlock,将其地址放在object的索引中。

    这样就完成了以object为标志的锁定,其他的线程想再次进行Monitor.Enter(object)操作,将获得object为正数的索引,然后就等待。

    直到索引变为负数,即线程使用Monitor.Exit(object)将索引变为负数。

    7:前台线程和后台线程

    前台线程:只有所有的前台线程都关闭才能完成程序关闭。

    后台线程:只要所有的前台线程结束,后台线程自动结束。

    8:SoundPlayer //播放音乐类

    //通过进行曲打开制定的文件

    ProcessStartInfo psi=new ProcessStartInfo(@"path");

    Process p=new Process();

    p.StartInfo=psi;

    p.Start();

  • 相关阅读:
    聊聊WS-Federation
    用双十一的故事串起碎片的网络协议(上)
    责任链模式的使用-Netty ChannelPipeline和Mina IoFilterChain分析
    最小化局部边际的合并聚类算法(中篇)
    最小化局部边际的合并聚类算法(上篇)
    UVaLive 7371 Triangle (水题,判矩形)
    UVaLive 7372 Excellence (水题,贪心)
    POJ 3312 Mahershalalhashbaz, Nebuchadnezzar, and Billy Bob Benjamin Go to the Regionals (水题,贪心)
    UVa 1252 Twenty Questions (状压DP+记忆化搜索)
    UVa 10817 Headmaster's Headache (状压DP+记忆化搜索)
  • 原文地址:https://www.cnblogs.com/DrHao/p/5130061.html
Copyright © 2020-2023  润新知