zoukankan      html  css  js  c++  java
  • First Click on Combox in DataGridView without Reaction

    Here is the demo code.

    public Form1()
    {
        InitializeComponent();
        view.viewName = "A";
        view.cameraName = "B";
        view.imageSize = "10";
        view.frameRate = 12;
        view.exposureTime = 34;
    }
    
    struct View
    {
        public string viewName;
        public string cameraName;
        public string imageSize;
        public double frameRate;
        public double exposureTime;
    }
    
    View view;
    
    static string MakeExposureTime(double time)
    {
        return time.ToString();
    }
    
    private void Form1_Load(object sender, EventArgs e)
    {
        int row = dataGridView_ActiveJob.Rows.Add(view.viewName, view.cameraName, view.imageSize, view.frameRate.ToString(), Form1.MakeExposureTime(view.exposureTime), "0%");
        DataGridViewComboBoxCell cell = (DataGridViewComboBoxCell)(dataGridView_ActiveJob.Rows[row].Cells["Rotate"]);
        cell.DataSource = new string[] { "0", "90", "180", "270" };
        dataGridView_ActiveJob.AllowUserToAddRows = false;
    }
    View Code

    Solution:

    The effect of the first click is to make the cell get the focus, you can avoid it by the following steps.

    First, set the property "EditMode" of the DataGridView control to "EditOnEnter".

     

    Second, add the "CellClick" event to the DataGridView. The specific code is as follows.

    private void dataGridView_ActiveJob_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        if (e.ColumnIndex >= 0 && e.RowIndex >= 0 && dataGridView_ActiveJob[e.ColumnIndex, e.RowIndex] != null && !dataGridView_ActiveJob[e.ColumnIndex, e.RowIndex].ReadOnly)
        {
            DataGridViewComboBoxColumn comboBoxColumn = dataGridView_ActiveJob.Columns[e.ColumnIndex] as DataGridViewComboBoxColumn;
            if (comboBoxColumn != null)
            {
                dataGridView_ActiveJob.BeginEdit(true);
                DataGridViewComboBoxEditingControl comboBoxEditingControl = dataGridView_ActiveJob.EditingControl as DataGridViewComboBoxEditingControl;
                if (comboBoxEditingControl != null)
                {
                    comboBoxEditingControl.DroppedDown = true;
                }
            }
        }
    }
    View Code
  • 相关阅读:
    Logging模块
    uWSGI和WSGI区别
    python内置函数getattr用法
    linux 升级python2.7
    JavaScript中判断null、undefined与NaN的方法
    python计算两个数的百分比
    BeautifulSoup中查找元素 select() 和find()区别
    Windows系统以及谷歌浏览器快捷键,控制台常用命令
    自己看源码的一些方法和心得分享
    JDK源码之AbstractStringBuilder类分析
  • 原文地址:https://www.cnblogs.com/jizhiqiliao/p/9915011.html
Copyright © 2011-2022 走看看