.Net standard Print Dialog versus Notepad's Print Dialog - printdialog

In my C# WinForm application, I use a "PrintDialog" to open a standard Window where the user can "customize" his print request (select the printer, access the properties, select to print all pages or a range, ...)
But in that window, the user cannot enter a list of pages (separated by ,) that he want to print, just as we can do within notepad's Print Dialog.
Any idea how I can get a Print Dialog like the notepad's PrintDialog ?
[EDIT] As suggested by Brian, the solution is to set the property UseEXDialog to true on PrintDialog.
That was not obvious based on the documentation, but it does the trick !

Set PrintDialog.UseEXDialog to true.
http://msdn.microsoft.com/en-us/library/system.windows.forms.printdialog.useexdialog(v=vs.110).aspx

Based on the documentation, it seems that you should set the AllowSomePages property to true.
Gets or sets a value indicating whether the Pages option button is enabled.

Related

How to forward user's text to another dialog

I offer the user some options in a menu, when they choose an option I replace the current dialog for them to start the valid dialog for the selected option, but if the user types something that its not in the menu I want to use AI to send them the right option but when I use stepContext.ReplaceDialogAsync the original text from the user is lost. How can I preserve the original text and forward it to the next dialog where the AI can process it?
You can pass it along your replace dialog code
stepContext.ReplaceDialogAsync(nameof(YourDialog),yourText);
And access it on your new dialog by
var result = stepContext.Options as string;

Automatically leave field after value is entered

I am creating a form in Visual FoxPro where the user will be entering a large number of values that are only one character values. So that the user does not have to press tab after every key press, I would like to setup the form so that once the value is entered the cursor automatically goes to the next field.
What is a good way to do this?
Make sure you have SET CONFIRM OFF
From the help file:
SET CONFIRM ON | OFF
...
OFF Specifies that the user can exit a text box by typing past the
last character in the text box. The insertion point, when it reaches
the last character in a text box, moves to the next control, and the
bell is sounded (if SET BELL is set to ON).
OFF is the default value of SET CONFIRM.
SET CONFIRM OFF also affects menu items and menu titles. If SET
CONFIRM is set to OFF, the user can choose an item from a menu or a
menu title in a menu bar by pressing the key corresponding to the
first letter of the menu item or title. (When SET CONFIRM is set to
ON, this action only selects the menu item or title.)
I made a simple form with two text boxes and verified that after typing one character, it jumps to the next text box.
Herb's answer is correct, but keep in mind that the cursor will jump to the next field in the TAB Order.
So if you entered your Textbox fields in some other order you might need to re-order the TAB's.
To verify that you have your TAB Order as you need, with the Form open in the VFP Development environment, from the Menu, click View - Tab Order - Assign Interactively. Then using your mouse, you can re-order the TAB settings for your Textboxes.
Also note that the TAB Order also includes the other Form objects such as Buttons, Grids, etc.
Good Luck

Turning off auto-complete for ComboBox

The standard Windows/MFC ComboBox (dropdown-mode) has an auto-complete feature that I'd like to turn off, but don't know how.
Example 1: Create a ComboBox with the list values "Abc" and "Def". Enter "A" as edit value and use the drop-down-button. "A" will be changed to "Abc".
Example 2: Same start values. Open the drop down, enter "A" as edit value and press TAB. "A" will be changed to "Abc".
These examples even work in the Visual Studio IDE dialog editor test mode. No compiled exe needed.
The change from "A" to "Abc" is probably a feature, but it's not wanted by the customer. Is there any way to prevent it?
You can finetune autocomplete behavior of any Edit control by calling SHAutoComplete. To get a handle to the Edit control part of a ComboBox send a CBEM_GETEDITCONTROL message to the ComboBox control.
To remove the unwanted feature the flags for SHAutoComplete must not include SHACF_USETAB.

How can I count a specific variable in the code in Visual Studio?

HI
I understand that we can search specific word/Variable in VS2010 editor. For example, If I used a variable called (MyTest) and I want to count how many times I used this variable/word in the code of say (10000) lines.
If possible, how can we do it in the current form or count the word in all form the project?
Thanks!
Assuming you wont to search for "MyVariable" press Ctrl+H and the Find/Replace Dialog should open. Enter "MyVariable" into the "Find what" field and again into the "Replace with" field. Set the Scope to "Current Document" and press the "Replace all" button. A message will popup telling "xxx occurrence(s) replaced.", where xxx is the number you are looking for.
Press the "undo"-Button once, if you want to revert the document-state to unchanged.
Can you not highlight the variable and press Shift+F12? This will tell you all of the matches found.
If you want to find the text "MyTest", here is a hacky way to do it.
Use the find dialog (CTRL F) to search for the text. You can modify the scope. eg Document, project etc
Click Bookmark all
Then open the Bookmarks window (View-Bookmark window) to see a list of all the bookmarks. It doesn't show the total number but you could easily count them manually here.
Ctrl + Shift + F to pull up the Find in Files dialog
Enter your search variable name and scope (document, project, solution etc)
Find all
Scroll to the bottom of the resulting Find Results and you'll see Matching lines: xxx

When should I use a ellipsis in a Menu Item

When should I put ... at the end of a menu item? I seem to remember reading some rules but can't for the life of me find them.
For context - I'm adding a properties option to a right click menu and am wondering if it is appropriate to add them.
As I understand it it indicates that the option will ask you something else before actually doing anything. The 3 dots are actually called an ellipsis, and if you check out the English use it kind of makes sense:
http://en.wikipedia.org/wiki/Ellipsis
BTW I've noticed OpenOffice breaks this convention sometimes!
When the option will send the user to some sort of dialog where the user has to do something before a real change is made. Options without the ellipse take effect immediately.
For example, 'Save' doesn't have an ellipsis, while 'Save As...' does because the user has to input the new name/location of the file.
One exception to the first two answers: if the whole point of the menu command is to open a window or dialog, then you don't need an ellipsis. For example, a "Get Info" or "Properties" command shouldn't have it, even though it's opening a window which lets you edit things.
It's only when the menu command's purpose is to do something else, but it needs a dialog or confirmation in order to do it.
It means that there will be another dialog box after you select that option, it won't actually 'do' anything. There will be another prompt.
To be exact, the rule is that if more information is required from the user to complete an action, then include an ellipsis. In the MS Vista User Experience Guidelines, getting a confirmation qualifies as "more information" (see http://msdn.microsoft.com/en-us/library/aa511502.aspx). Commands to show Properties, About, Help, Options do not get ellipsis because no further information is needed to execute the command, which is "Show Properties" or "Show Documentation" or "Show Options." The File Open command gets an ellipsis because additional information is needed to open the file, namely the file name.
If the menu is an action that the user will be doing, but the action won't be completed until we get more information from the user, you show an ellipsis, e.g.:
Format Hard Drive… (we need to know which one, and the file system type)
Save As… (we need to know what filename and type to save as)
Print… (we need to know what printer and quality settings)
Find… (we show a text box asking for the text to search for, and where)
Rename… (rename to what)
As opposed to actions that will happen the moment you click the menu item, e.g.:
Save
Undo
Redo
Select All
Ellipses don't just indicate that a dialog will appear. i.e. if it's not an "action", then there's no ellipses, e.g.:
About Gizmo
Page Setup
Print Preview
Options
File Properties
And asking the user if they want to do something does not count as "getting more information from the user", e.g.:
Delete File
Recycle File
New Text Document
Whenever selecting that item results in another dialog box appearing. For actions that happen immediately (think Save vs. Save As), no ellipsis.
Originally, it meant:
An ellipsis (...) after a menu item means that after the item is chosen, the user will be asked for more information before the operation is carried out. Usually, the user must fill in a dialog box and click and OK button or its equivalent. Don't use the ellipsis when the dialog box that will appear is merely a confirmation or warning (for example, 'Save changes before quitting?').
(Apple Human Interface Guidelines, page 69)
Note that it did not mean "show a dialog box", even though that was often the consequence of this. For example, on Mac OS (not X), the "Options" button in the Page Setup window had no ellipsis, even though it showed a modal dialog box. No ellipsis is used because showing the options window is the operation.
(Tog on Interface, pages 46-47)
Of course, these days nobody cares about such things as human interface guidelines, not even Apple, so you can pretty much do what you want and still be more consistent than most any other application out there.
I've usually seen it in places where more input is required from the user before completing an operation. If your properties dialog is allowing the user to change properties, I would include the ellipses. If it's just displaying the information, don't include it.
It generally means that a Dialog will be shown when the item is clicked.
They usually signify that clicking on that entry will open a dialog window.
You should add ellipses to the end of text only if you're truncating the text (this applies anywhere). You should truncate the text if it's too long to reasonably fit where you're putting it.
Edit: interesting, I never noticed that menus in Windows use the ellipses to indicate truncated text, but also use the ellipses on short text to indicate that more information will be collected before the action is taken. This is inconsistent interface design, but since menus are under the control of individual programmers it's unavoidable.
It usually means it'll take your focus away from the current window. Like for example, notepad has a "Find..." which means you're going to focus on another window (ie dialog box) to enter something. But in firefox, it has just "Find" which then focuses on a text input on the same window.

Resources