SafeGui() public static method

Executes the provided delegate in the specified control's thread. Use this method to avoid problems with cross thread calls.
public static SafeGui ( Control control, MethodInvoker invoker ) : void
control System.Windows.Forms.Control The control running on the thread to be used.
invoker MethodInvoker The delegate to execute on the control's thread.
return void
#pragma warning disable 168
        /// <summary>
        /// Carries out additional actions when a cell is clicked.  Specifically, if
        /// a combobox cell is clicked, the cell goes into edit mode immediately.
        /// </summary>
        public void CellClickHandler(object sender, DataGridViewCellEventArgs e)
        {
            bool setToEditMode = CheckIfComboBoxShouldSetToEditMode(e.ColumnIndex, e.RowIndex);

            if (!setToEditMode)
            {
                return;
            }
            var dataGridViewColumn =
                ((DataGridViewColumnWin)Columns[e.ColumnIndex]).DataGridViewColumn;

            ControlsHelper.SafeGui(this, () => BeginEdit(true));
            if (EditingControl is DataGridViewComboBoxEditingControl)
            {
                ((DataGridViewComboBoxEditingControl)EditingControl).DroppedDown = true;
            }
        }
Example #2
0
 private void SetupDisplayBox()
 {
     ControlsHelper.SafeGui(_dateTimePicker, delegate()
     {
         _displayBox             = new Panel();
         _displayBox.BorderStyle = BorderStyle.None;
         _displayBox.Location    = new Point(2, 2);
         ResizeDisplayBox();
         _displayBox.BackColor = _dateTimePicker.BackColor;
         _displayBox.ForeColor = _dateTimePicker.ForeColor;
         _displayBox.MouseUp  += DateTimePicker_MouseUp;
         _displayBox.KeyDown  += DateTimePicker_KeyDown;
         _displayText          = new Label();
         _displayText.Location = new Point(0, 0);
         _displayText.AutoSize = true;
         _displayText.Text     = "";
         _displayText.MouseUp += DateTimePicker_MouseUp;
         _displayText.KeyDown += DateTimePicker_KeyDown;
         _displayBox.Controls.Add(_displayText);
         _dateTimePicker.Controls.Add(_displayBox);
         _displayBox.Visible = false;
     });
 }