private string ChooseFile(CommonFileDialogFilter filter, string initialDir) { var dialog = new CommonOpenFileDialog(); dialog.IsFolderPicker = false; dialog.EnsureReadOnly = false; dialog.AllowNonFileSystemItems = false; dialog.Filters.Add(filter); if (initialDir != null) dialog.InitialDirectory = initialDir; var result = dialog.ShowDialog(); return result == CommonFileDialogResult.Ok ? dialog.FileName : null; }
/// <summary> /// Open a user-specified text file in a new tab (using a RichTextBox) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button3_Click(object sender, EventArgs e) { // Open text file CommonOpenFileDialog cfd = new CommonOpenFileDialog(); CommonFileDialogStandardFilters.TextFiles.ShowExtensions = true; CommonFileDialogFilter rtfFilter = new CommonFileDialogFilter("RTF Files", ".rtf"); rtfFilter.ShowExtensions = true; cfd.Filters.Add(CommonFileDialogStandardFilters.TextFiles); cfd.Filters.Add(rtfFilter); if (cfd.ShowDialog() == CommonFileDialogResult.Ok) { TabPage newTab = new TabPage(Path.GetFileName(cfd.FileName)); tabControl1.TabPages.Add(newTab); RichTextBox rtbText = new RichTextBox(); rtbText.KeyDown += new KeyEventHandler(rtbText_KeyDown); rtbText.MouseMove += new MouseEventHandler(rtbText_MouseMove); rtbText.KeyUp += new KeyEventHandler(rtbText_KeyUp); rtbText.Dock = DockStyle.Fill; // Based on the extension, load the file appropriately in the RichTextBox if (Path.GetExtension(cfd.FileName).ToLower() == ".txt") rtbText.LoadFile(cfd.FileName, RichTextBoxStreamType.PlainText); else if (Path.GetExtension(cfd.FileName).ToLower() == ".rtf") rtbText.LoadFile(cfd.FileName, RichTextBoxStreamType.RichText); // Update the tab newTab.Controls.Add(rtbText); // Add a new preview TabbedThumbnail preview = new TabbedThumbnail(this.Handle, newTab.Handle); // Event handlers for this preview preview.TabbedThumbnailActivated += preview_TabbedThumbnailActivated; preview.TabbedThumbnailClosed += preview_TabbedThumbnailClosed; preview.TabbedThumbnailMaximized += preview_TabbedThumbnailMaximized; preview.TabbedThumbnailMinimized += preview_TabbedThumbnailMinimized; preview.ClippingRectangle = GetClippingRectangle(rtbText); TaskbarManager.Instance.TabbedThumbnail.AddThumbnailPreview(preview); // Add thumbnail toolbar buttons TaskbarManager.Instance.ThumbnailToolBars.AddButtons(newTab.Handle, thumbButtonCut, thumbButtonCopy, thumbButtonPaste, thumbButtonSelectAll); // Select the tab in the application UI as well as taskbar tabbed thumbnail list tabControl1.SelectedTab = newTab; TaskbarManager.Instance.TabbedThumbnail.SetActiveTab(tabControl1.SelectedTab); button2.Enabled = true; button4.Enabled = true; } }
public void ShowFileOpenDialog() { string[] fileNames; List<Agent.KeyConstraint> constraints = new List<Agent.KeyConstraint>(); if (mAgent is PageantClient) { // Client Mode with Pageant - Show standard file dialog since we don't // need / can't use constraints using (var openFileDialog = new OpenFileDialog()) { openFileDialog.Multiselect = true; openFileDialog.Filter = string.Join ("|", Strings.filterPuttyPrivateKeyFiles, "*.ppk", Strings.filterAllFiles, "*.*"); var result = openFileDialog.ShowDialog (); if (result != DialogResult.OK) { return; } fileNames = openFileDialog.FileNames; } } else if (CommonOpenFileDialog.IsPlatformSupported) { // Windows Vista/7/8 has new style file open dialog that can be extended // using the Windows API via the WindowsAPICodepack library var win7OpenFileDialog = new CommonOpenFileDialog (); win7OpenFileDialog.Multiselect = true; win7OpenFileDialog.EnsureFileExists = true; var confirmConstraintCheckBox = new CommonFileDialogCheckBox (cConfirmConstraintCheckBox, "Require user confirmation"); var lifetimeConstraintTextBox = new CommonFileDialogTextBox (cLifetimeConstraintTextBox, string.Empty); lifetimeConstraintTextBox.Visible = false; var lifetimeConstraintCheckBox = new CommonFileDialogCheckBox (cLifetimeConstraintCheckBox, "Set lifetime (in seconds)"); lifetimeConstraintCheckBox.CheckedChanged += delegate(object aSender, EventArgs aEventArgs) { lifetimeConstraintTextBox.Visible = lifetimeConstraintCheckBox.IsChecked; }; var confirmConstraintGroupBox = new CommonFileDialogGroupBox (); var lifetimeConstraintGroupBox = new CommonFileDialogGroupBox (); confirmConstraintGroupBox.Items.Add (confirmConstraintCheckBox); lifetimeConstraintGroupBox.Items.Add (lifetimeConstraintCheckBox); lifetimeConstraintGroupBox.Items.Add (lifetimeConstraintTextBox); win7OpenFileDialog.Controls.Add (confirmConstraintGroupBox); win7OpenFileDialog.Controls.Add (lifetimeConstraintGroupBox); var filter = new CommonFileDialogFilter ( Strings.filterPuttyPrivateKeyFiles, "*.ppk"); win7OpenFileDialog.Filters.Add (filter); filter = new CommonFileDialogFilter (Strings.filterAllFiles, "*.*"); win7OpenFileDialog.Filters.Add (filter); win7OpenFileDialog.FileOk += win7OpenFileDialog_FileOk; /* add help listeners to win7OpenFileDialog */ // declare variables here so that the GC does not eat them. WndProcDelegate newWndProc, oldWndProc = null; win7OpenFileDialog.DialogOpening += (sender, e) => { var hwnd = win7OpenFileDialog.GetWindowHandle(); // hook into WndProc to catch WM_HELP, i.e. user pressed F1 newWndProc = (hWnd, msg, wParam, lParam) => { const short shellHelpCommand = 0x7091; var win32Msg = (Win32Types.Msg)msg; switch (win32Msg) { case Win32Types.Msg.WM_HELP: var helpInfo = (HELPINFO)Marshal.PtrToStructure(lParam, typeof(HELPINFO)); // Ignore if we are on an unknown control or control 100. // These are the windows shell control. The help command is // issued by these controls so by not ignoring, we would call // the help method twice. if (helpInfo.iCtrlId != 0 && helpInfo.iCtrlId != 100) OnAddFromFileHelpRequested(win7OpenFileDialog, EventArgs.Empty); return (IntPtr)1; // TRUE case Win32Types.Msg.WM_COMMAND: var wParamBytes = BitConverter.GetBytes(wParam.ToInt32()); var highWord = BitConverter.ToInt16(wParamBytes, 0); var lowWord = BitConverter.ToInt16(wParamBytes, 2); if (lowWord == 0 && highWord == shellHelpCommand) { OnAddFromFileHelpRequested(win7OpenFileDialog, EventArgs.Empty); return (IntPtr)0; } break; } return CallWindowProc(oldWndProc, hwnd, msg, wParam, lParam); }; var newWndProcPtr = Marshal.GetFunctionPointerForDelegate(newWndProc); var oldWndProcPtr = SetWindowLongPtr(hwnd, WindowLongFlags.GWL_WNDPROC, newWndProcPtr); oldWndProc = (WndProcDelegate) Marshal.GetDelegateForFunctionPointer(oldWndProcPtr, typeof(WndProcDelegate)); }; var result = win7OpenFileDialog.ShowDialog (); if (result != CommonFileDialogResult.Ok) { return; } if (confirmConstraintCheckBox.IsChecked) { var constraint = new Agent.KeyConstraint (); constraint.Type = Agent.KeyConstraintType.SSH_AGENT_CONSTRAIN_CONFIRM; constraints.Add (constraint); } if (lifetimeConstraintCheckBox.IsChecked) { // error checking for parse done in fileOK event handler uint lifetime = uint.Parse (lifetimeConstraintTextBox.Text); var constraint = new Agent.KeyConstraint (); constraint.Type = Agent.KeyConstraintType.SSH_AGENT_CONSTRAIN_LIFETIME; constraint.Data = lifetime; constraints.Add (constraint); } fileNames = win7OpenFileDialog.FileNames.ToArray (); } else { using (var openFileDialog = new OpenFileDialog()) { openFileDialog.Multiselect = true; openFileDialog.Filter = string.Join ("|", Strings.filterPuttyPrivateKeyFiles, "*.ppk", Strings.filterAllFiles, "*.*"); openFileDialog.FileOk += xpOpenFileDialog_FileOk; // Windows XP uses old style file open dialog that can be extended // using the Windows API via FileDlgExtenders library XPOpenFileDialog xpOpenFileDialog = null; if (Type.GetType("Mono.Runtime") == null) { xpOpenFileDialog = new XPOpenFileDialog (); xpOpenFileDialog.FileDlgStartLocation = AddonWindowLocation.Bottom; mOpenFileDialogMap.Add (openFileDialog, xpOpenFileDialog); } openFileDialog.HelpRequest += OnAddFromFileHelpRequested; // TODO: technically, a listener could be added after this openFileDialog.ShowHelp = AddFromFileHelpRequested != null; var result = xpOpenFileDialog == null ? openFileDialog.ShowDialog() : openFileDialog.ShowDialog(xpOpenFileDialog, null); if (result != DialogResult.OK) return; if (xpOpenFileDialog == null) { // If dialog could not be extended, then we add constraints by holding // down the control key when clicking the Open button. if (Control.ModifierKeys.HasFlag(Keys.Control)) { var constraintDialog = new ConstraintsInputDialog (); constraintDialog.ShowDialog (); if (constraintDialog.DialogResult == DialogResult.OK) { if (constraintDialog.ConfirmConstraintChecked) { constraints.addConfirmConstraint (); } if (constraintDialog.LifetimeConstraintChecked) { constraints.addLifetimeConstraint (constraintDialog.LifetimeDuration); } } } } else { mOpenFileDialogMap.Remove (openFileDialog); if (xpOpenFileDialog.UseConfirmConstraintChecked) { constraints.addConfirmConstraint (); } if (xpOpenFileDialog.UseLifetimeConstraintChecked) { constraints.addLifetimeConstraint (xpOpenFileDialog.LifetimeConstraintDuration); } } fileNames = openFileDialog.FileNames; } } UseWaitCursor = true; mAgent.AddKeysFromFiles(fileNames, constraints); if (!(mAgent is Agent)) { ReloadKeyListView(); } UseWaitCursor = false; }
private void _ButtonBrowse_Click(object sender, EventArgs e) { CommonOpenFileDialog dialog = new CommonOpenFileDialog(); CommonFileDialogStandardFilters.TextFiles.ShowExtensions = true; CommonFileDialogFilter filter = new CommonFileDialogFilter(Locale.Current.Labels.WaveFiles, ".wav") { ShowExtensions = true }; String path = string.IsNullOrEmpty(_ComboSound.SelectedValue.ToString()) ? Path.Combine(KnownFolders.Windows.Path, "Media") : Path.GetFullPath(_ComboSound.SelectedValue.ToString()); dialog.Title = Locale.Current.Labels.BrowseDialog; dialog.Multiselect = false; dialog.DefaultDirectory = Directory.Exists(path) ? path : KnownFolders.Desktop.Path; dialog.Filters.Add(filter); if (dialog.ShowDialog() == CommonFileDialogResult.Ok) { DataTable dataSource = (DataTable)_ComboSound.DataSource; dataSource.Rows.RemoveAt(2); dataSource.Rows.Add(new string[] { Path.GetFileName(dialog.FileName), dialog.FileName }); _ComboSound.SelectedIndex = 2; } }
public override string ToString() { return(String.Format("{0} ({1})", rawDisplayName, CommonFileDialogFilter.GetDisplayExtensionList(extensions))); }
//ignore private void OnOpenMedia(object sender, RoutedEventArgs args) { CommonOpenFileDialog cfd = new CommonOpenFileDialog(); CommonFileDialogFilter rtfFilter = new CommonFileDialogFilter("Windows media files", ".wmv"); cfd.Filters.Add(rtfFilter); if (cfd.ShowDialog() == CommonFileDialogResult.OK) { mediaElement.Source = new Uri(cfd.FileName, UriKind.RelativeOrAbsolute); } }