• dataGridView使用指南系列一、回车换行或换列完美解决方案


    bool enterkey;
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
    enterkey = false;

    if (keyData == Keys.Enter) //监听回车事件
    {
    if (this.gvGzb.IsCurrentCellInEditMode) //如果当前单元格处于编辑模式
    {
    enterkey = true; //把是否点击按钮设置为真

    if (btnSetEnter.Text != "竖")
    if (gvGzb.CurrentCell.RowIndex == gvGzb.Rows.Count - 1)
    {
    //SendKeys.Send("{Up}");
    SendKeys.Send("{Tab}");
    }
    else
    {
    SendKeys.Send("{Up}");
    SendKeys.Send("{Tab}");
    }
    }


    }

    //继续原来base.ProcessCmdKey中的处理
    return base.ProcessCmdKey(ref msg, keyData);
    }

    以上代码只处理编辑状态下的回车事件,在普通状态下的回车事件就要用key_down事件处理了:

    ------------------------------------------------------------------------------------------

    private void gvGzb_KeyDown(object sender, KeyEventArgs e)
    {
    if ((e.KeyCode == Keys.Return) && (btnSetEnter.Text != "竖"))
    {
    SendKeys.Send("{Tab}");
    e.Handled = true;
    if ((gvGzb.FirstDisplayedScrollingColumnHiddenWidth > 0) && !gvGzb.Columns[gvGzb.SelectedCells[0].ColumnIndex].Frozen)
    {
    gvGzb.FirstDisplayedScrollingColumnIndex = gvGzb.SelectedCells[0].ColumnIndex;
    }
    }

    }

    上面的FirstDisplayedScrollingColumnIndex属性设置,是为了在datagirdview的列很多的情况下,按回车换列将滚动条后面的列自动显示出来,如下图,我用net做的简易工资管理系统,有很多项,如果不设置的话,最后一列只能看到一半。

  • 相关阅读:
    python argparse传入布尔参数不生效解决
    mac下python3.7安装mysqlclient出错解决
    Mac下Homebrew替换镜像
    上传docker镜像到阿里云镜像源
    js拼接url以及为html某标签属性赋值
    【翻译】REST framework JWT Auth(django rest framework-jwt)
    nginx.conf配置详解
    mysql5.7新增加用户和授权
    mysql远程连接速度很慢
    ubuntu安装shadow socks-qt5
  • 原文地址:https://www.cnblogs.com/FLWL/p/4325851.html
Copyright © 2020-2023  润新知