public void OnCheckButtonToggled(IFileDialogCustomize pfdc, int dwIDCtl, bool bChecked) { // Find control DialogControl control = this.parent.controls.GetControlbyId(dwIDCtl); // Update control and call corresponding event if (control is CommonFileDialogCheckBox) { CommonFileDialogCheckBox box = control as CommonFileDialogCheckBox; box.IsChecked = bChecked; box.RaiseCheckedChangedEvent(); } }
void IDialogControlHost.ApplyControlPropertyChange(string propertyName, DialogControl control) { if (propertyName == "Text") { customize.SetControlLabel(control.Id, ((CommonFileDialogControl)control).Text); } else if (propertyName == "Enabled" || propertyName == "Visible") { CommonFileDialogControl dialogControl = control as CommonFileDialogControl; SafeNativeMethods.CDCONTROLSTATE state = SafeNativeMethods.CDCONTROLSTATE.CDCS_INACTIVE; if (dialogControl.Enabled == true) { state |= SafeNativeMethods.CDCONTROLSTATE.CDCS_ENABLED; } if (dialogControl.Visible == true) { state |= SafeNativeMethods.CDCONTROLSTATE.CDCS_VISIBLE; } customize.SetControlState(control.Id, state); } else if (propertyName == "SelectedIndex") { if (control is CommonFileDialogRadioButtonList) { CommonFileDialogRadioButtonList list = control as CommonFileDialogRadioButtonList; customize.SetSelectedControlItem(control.Id, list.SelectedIndex); } else if (control is CommonFileDialogComboBox) { CommonFileDialogComboBox box = control as CommonFileDialogComboBox; customize.SetSelectedControlItem(control.Id, box.SelectedIndex); } } else if (propertyName == "IsChecked") { if (control is CommonFileDialogCheckBox) { CommonFileDialogCheckBox checkBox = control as CommonFileDialogCheckBox; customize.SetCheckButtonState(control.Id, checkBox.IsChecked); } } }
private void AddCustomControls(CommonFileDialog openDialog) { // Add a RadioButtonList CommonFileDialogRadioButtonList list = new CommonFileDialogRadioButtonList("Options"); list.Items.Add(new CommonFileDialogRadioButtonListItem("Option A")); list.Items.Add(new CommonFileDialogRadioButtonListItem("Option B")); list.SelectedIndexChanged += RBLOptions_SelectedIndexChanged; list.SelectedIndex = 1; openDialog.Controls.Add(list); // Create a groupbox CommonFileDialogGroupBox groupBox = new CommonFileDialogGroupBox("Options"); // Create and add two check boxes to this group CommonFileDialogCheckBox checkA = new CommonFileDialogCheckBox("Option A", true); CommonFileDialogCheckBox checkB = new CommonFileDialogCheckBox("Option B", true); checkA.CheckedChanged += ChkOptionA_CheckedChanged; checkB.CheckedChanged += ChkOptionB_CheckedChanged; groupBox.Items.Add(checkA); groupBox.Items.Add(checkB); // Create and add a separator to this group groupBox.Items.Add(new CommonFileDialogSeparator()); // Create and add a button to this group CommonFileDialogButton btnCFDPushButton = new CommonFileDialogButton("Push Button"); btnCFDPushButton.Click += PushButton_Click; groupBox.Items.Add(btnCFDPushButton); // Add groupbox to dialog openDialog.Controls.Add(groupBox); // Add a Menu CommonFileDialogMenu menu = new CommonFileDialogMenu("Sample Menu"); CommonFileDialogMenuItem itemA = new CommonFileDialogMenuItem("Menu Item 1"); CommonFileDialogMenuItem itemB = new CommonFileDialogMenuItem("Menu Item 2"); itemA.Click += MenuOptionA_Click; itemB.Click += MenuOptionA_Click; menu.Items.Add(itemA); menu.Items.Add(itemB); openDialog.Controls.Add(menu); // Add a TextBox openDialog.Controls.Add(new CommonFileDialogLabel("Enter name")); openDialog.Controls.Add(new CommonFileDialogTextBox("textBox", Environment.UserName)); // Add a ComboBox CommonFileDialogComboBox comboBox = new CommonFileDialogComboBox(); comboBox.SelectedIndexChanged += ComboEncoding_SelectedIndexChanged; comboBox.Items.Add(new CommonFileDialogComboBoxItem("Combobox Item 1")); comboBox.Items.Add(new CommonFileDialogComboBoxItem("Combobox Item 2")); comboBox.SelectedIndex = 1; openDialog.Controls.Add(comboBox); }