zoukankan      html  css  js  c++  java
  • DataGridView一些技巧[不断更新]

    1,绑定下拉列表列

    网上大多数用法是要你在RowsAdded事件里面,找到列,然后再设置数据源,也是官方演示的做法,殊不知DGV的每一列的控件都是可以直接在后台设置属性的,并不需要循环,如下,我某列的“合格”是一个名为"validate"的列,那么你只要在代码里直接设置

    1 validate.DataSource = mydatasource;
    2 validate.DisplayMember = display;
    3 validate.ValueMember = value;

    这样,你的数据就绑定上了,相当方便 

    注:RowsAdded事件严格来说并不是循环行,所以千万不要在这个事件里面写循环行来处理一些数据的代码

    2,让单元格里的下拉列表在编辑里才显示上下箭头

    很简单,设置其DisplayStyle为Nothing即可。

    3,随鼠标滚轮而滚动选中行

    代码
    1
    2 /// <summary>
    3 /// 给datagridview添加鼠标滚轮事件
    4 /// </summary>
    5 /// <param name="dataGridView1"></param>
    6   public static void bindMouseWheel(System.Windows.Forms.DataGridView dataGridView1)
    7 {
    8 dataGridView1.MouseWheel += new System.Windows.Forms.MouseEventHandler(dataGridView1_MouseWheel);
    9 dataGridView1.TabIndex = 0;//获得焦点
    10 }
    11
    12 static void dataGridView1_MouseWheel(object sender, System.Windows.Forms.MouseEventArgs e)
    13 {
    14 DataGridView dataGridView1 = sender as DataGridView;
    15 try
    16 {
    17 if (dataGridView1.CurrentCell != null)
    18 {
    19 DataGridViewCell dvc = dataGridView1.CurrentCell;
    20 int ri = dvc.RowIndex;
    21 int ci = dvc.ColumnIndex;
    22 if (e.Delta > 0)//向上
    23 {
    24 if (ri > 0)
    25 {
    26 dvc = dataGridView1.Rows[ri - 1].Cells[ci];
    27 dataGridView1.CurrentCell = dvc;
    28 }
    29 }
    30 else
    31 {
    32 if (ri < dataGridView1.Rows.Count - 1)
    33 {
    34 dvc = dataGridView1.Rows[ri + 1].Cells[ci];
    35 dataGridView1.CurrentCell = dvc;
    36 }
    37 }
    38 }
    39 }
    40 catch
    41 {
    42 return;
    43 }
    44 }

    调用

    Helper.GridviewExtend.bindMouseWheel(dataGridView1);

    其中,Helper是我的帮助项目的命名空间,忽视它,

    dataGridView1.TabIndex = 0;//获得焦点

    这是因为mouseWheel事件只有在DGV获得焦点的时候才生效,于是设DGV的tabIndex为零,这样会默认获得窗体的焦点

    另外,我之所以把它封闭起来而不是直接写DGV的事件纯粹是为了方便调用

  • 相关阅读:
    Developing
    debian 中的jdk
    openwrt手册编译
    下载openwrt源码
    progit 学习笔记-- 1 第一章 第二章
    nw335 debian sid x86-64 -- 6 第三方驱动
    nw335 debian sid x86-64 -- 5 使用xp的驱动
    nw335 debian sid x86-64 -- 4 realtek 提供的官方驱动
    JavaScript中介者模式
    javascript职责链模式
  • 原文地址:https://www.cnblogs.com/walkerwang/p/1768664.html
Copyright © 2011-2022 走看看