Habanero.Faces.Win.ControlsHelper.SafeGui C# (CSharp) Method

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
        public static void SafeGui(Control control, MethodInvoker invoker)
        {
            if (invoker == null) return;
            if (control != null)
            {
                if (control.InvokeRequired)
                {
                    control.Invoke(invoker, null);
                }
                else
                {
                    invoker();
                }
            }
            else
            {
                invoker();
            }
        }

Usage Example

#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;
            }
        }
All Usage Examples Of Habanero.Faces.Win.ControlsHelper::SafeGui
ControlsHelper