• 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
  • 相关阅读:
    java RSA 加签验签【转】
    json遍历 分别使用【原】
    oracle 递归和connect by【转】
    css before after基本用法【转】
    Java Web基础——Action+Service +Dao三层的功能划分
    JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分
    UUID
    在ssh框架中service-action-jsp-formbeam-dao的调用顺序
    Singleton模式(单例模式)
    真正理解、区分Action,Service和Dao功能
  • 原文地址:https://www.cnblogs.com/jizhiqiliao/p/9915011.html
Copyright © 2020-2023  润新知