zoukankan      html  css  js  c++  java
  • WinForm开发之点滴整理

    一.添加资源(图片,文字之类)

    Winform开发中经常会要用到一些文件,例如给控件加背景图之类的。但是Winform不想Web开发,直接把图片放到项目下,调用的时候直接相对目录就可以了。

    WinForm里就相对比较麻烦了,可以通过下面方式实现:
    ①在工程的根目录下找到文件夹Properties,下的文件Resources.resx,双击打开

    ②添加资源=>添加现有文件  选择好后保存即可。

    ③给控件绑定图片时,肯定会打开"选择资源"窗口(这个应该都见过)。选择"项目资源文件",这样之前添加的文件就会自动显示在下面,选中 确定 OK。


    二.两个combobox共用一个数据源的问题

    当在一个页面中多个combobox共用一个数据源时,就会发生一个奇怪的现象:如果一个combobox的选中状况发生变化时,其他的也会发生同样的变化(即选中的项一直是相同的)。

    数据源有多种类型,这里给出DataSet和List的解决方法:

    ①DataSet可以使用Copy方法:

    DataSet ds = new DataSet();
    
    comboBox1.DataSource = ds;
    comboBox2.DataSource = ds.Copy();

    ②List可以使用ToArray或ToList方法:

    List<int> list = new List<int>();
    list.Add(10);
    list.Add(20);
    list.Add(30);
    
    comboBox1.DataSource = list;
    comboBox2.DataSource = list.ToArray();
    List<int> list = new List<int>();
    list.Add(10);
    list.Add(20);
    list.Add(30);
    comboBox1.DataSource = list;
    comboBox2.DataSource = list.ToList();

    三.当关闭子窗口时,父窗口也随之关闭的问题
    原因不详
    解决方法:当窗口关闭的时候,在窗口关闭事件对象会有一个存放关闭原因的属性(CloseReason)和是否取消关闭属性(Cancel)
    在父窗口的关闭事件中,如果是因为子窗口关闭而引起的关闭,则e.CloseReason是CloseReason.None;
    如果是用户点击的关闭按钮或者执行Form.Close()方法的话,则e.CloseReason是CloseReason.UserClosing;
    所以只需要判断e.CloseReason的值,然后设定e.Cancel为true(取消关闭)即可。

    private void Main_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (e.CloseReason == CloseReason.None)
        {
            e.Cancel = true;
        }
    }

    四.禁止窗口的可调整大小
    设置Form的FormBorderStyle为FixedSingle
    去掉最大化最小化按钮:将MaximizeBox和MinimumBox设为false;



     

  • 相关阅读:
    测试开发面试集锦_数据库
    测试开发面试集锦_linux
    测试开发面试题集锦_java
    Java中equals 和==的区别
    定时清理文件shell脚本
    java文件上传,upload使用
    python 获取错误日志,并发送邮件
    c语言代码审计规范
    渗透测试之nmap
    渗透测试之GoogleHack
  • 原文地址:https://www.cnblogs.com/TiestoRay/p/2966664.html
Copyright © 2011-2022 走看看