//Method simplified, because once a filter is applied the filters are disabled private void ApplyFilter() { //cmbFilter instead of cmbEdgeDetection if (previewBitmap == null || cmbFilter.SelectedIndex == -1) { return; } Bitmap selectedSource = null; Bitmap bitmapResult = null; selectedSource = originalBitmap; if (selectedSource != null) { bitmapResult = ImageFilters.ApplyRegistredFilter(selectedSource, cmbFilter.SelectedItem.ToString()); } if (bitmapResult != null) { picPreview.Image = bitmapResult; intermediateBitmap = bitmapResult; } //Disabling the filters and enabling the edge detection cmbEdgeDetection.Enabled = true; cmbFilter.Enabled = false; //From here, saving the image is possible, not loading a new one btnSaveNewImage.Enabled = true; btnOpenOriginal.Enabled = false; }