Winform 控件使用集锦

  1. DataGridView中checkbox的值读取问题.checkbox选中之后,在CellClick事件中通过Value是读取不到值的,在当前单元格变为另一个单元格之前,它的值不会写到DataGridView的数据源中去,只能取其所要表示的值,在DataGridViewCheckBoxCell中,可以使用EditingCellFormattedValue来得到当前的单元格要表示的被格式化的值.因为CellClick的发生在值改变之前,所以只能得到单元格在由鼠标改变之前的值.
  2. DatagridView CurrentRow是只读的,CurrentCell是可读可写的.可设置CurrentCell来设置当前选中行.设置某一行被选中是不会改变当前行的.
  3. System.Windows.Forms.DataGridViewCellStyle s = new System.Windows.Forms.DataGridViewCellStyle();
    s.ForeColor = Color.Red;
    this.gridAllStorey.Columns["Index"].HeaderCell.Style = s;设置DataGridView的某一列的标题的颜色和样式.但是需要设置EnableheadersVisualStyles=false.

  4. DatagridView的列DisplayIndex和列的实际顺序也就是编辑列中的顺序是不一样的.前者不影响后者.在界面上修改显示顺序不影响代码中获取某一列的值.
  5. Form界面在第一次显示时会触发Shown事件,实在Load之后的,而且只会触发一次,可以添加要显示之后进行的处理.
  6. 资源文件 详细信息科参考:
    1. 添加资源文件(可以使图片,文件等)到项目中,设置为内嵌,那么会在生成的DLL中的Resource下出现,别的程序可以获取.成为了清单资源.和Resx文件一样并列了.
    2. 给控件添加图标时,选择本地文件,那么会在控件所在的Form生成资源文件,资源文件指向电脑中的文件,文件没有包含在项目中,但是被项目引用,在开启VS的时候,是删不掉文件的.这个文件是属于Form的,会在Form的Resource中.使用的时候是根据名称查找
    3. 给控件添加图标时,选择项目资源文件,可以选择已有的,或者选择导入,这时候导入的图片,会被加入到项目的资源文件中,属于整个项目,要强调的是,图片本身会被加入到项目中,项目中的所有控件都可以引用这个文件,而且是强命名的方式引用.Resource...
    4. 获取DLL中的资源图片,ResourceManager可能会抛出异常,ResourceReader可以使用.
    5. 读取dll中图片资源的核心代码(不完善):
                      if (file.Name.EndsWith(".exe") || file.Name.EndsWith(".dll")) {
      
                          var assembly = Assembly.LoadFile(file.FullName);
      
                          var list = assembly.GetManifestResourceNames();
      
                          foreach (var item in list) {
      
                              using (var stream = assembly.GetManifestResourceStream(item)) {
      
                                  if (item.EndsWith(".resources")) {
      
                                      using (var reader = new ResourceReader(stream)) {
      
                                          var enumer = reader.GetEnumerator();
      
                                          while (enumer.MoveNext()) {
      
                                              listBox1.Items.Add(enumer.Key + ":" + enumer.Value.ToString());
      
                                          }
      
                                      }
      
                                  }
      
                              }
      
                          }
      
                      }
      View Code

       

你可能感兴趣的:(WinForm)