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
  • 相关阅读:
    C# WinForm程序中强制退出程序以及启动程序
    WinForm程序中对关闭按钮的操作
    DataTable转换为List
    json日期转换
    ajax局部刷新
    程序暂停或延迟几秒再次运行
    分页显示的制作流程
    Django 项目基础操作总结
    Django初识
    Mysql有关分页的操作
  • 原文地址:https://www.cnblogs.com/jizhiqiliao/p/9915011.html
Copyright © 2011-2022 走看看