|
I'm looking, and I'm not seeing any C# in there. So, why have you asked this in the C# forum? Why not post it in the web dev forum?
|
|
|
|
|
WinForms, of course.
Any idea why the overwrite prompt is popping up behind everything, rather than in front of everything where it might be useful?
Pushing the Alt key brings it immediately up where it belongs.
(As an aside, why are there two different SaveFileDialogs, depending on whether you choose to "ShowHelp"?)
|
|
|
|
|
Can you share the code how you invoke the SaveFileDialog, in my application its in front of the Winform UI.
It's the same SaveFileDialog with an additional button "Help" pressing the Help button should display a page on how to use this dialog. however when i tested in my PC pressing the Help buttons pops nothing.
Jibesh V P
|
|
|
|
|
jibesh wrote: Can you share the code how you invoke the SaveFileDialog
if (saveProjectDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
SaveProject(saveProjectDialog.FileName);
etc.
But I just found out it isn't just the SaveFileDialog doing it. Every MessageBox is doing the same. (No, nothing in the project is set to TopMost.)
I don't have anywhere to post screen captures at the moment, but the dialogs are different when ShowHelp is used or not. One is a huge Windows 7 Explorer-ish box, the other is a small dialog with the 5 icons down the left side for Recent Places, Desktop, Libraries, Computer, Network.
|
|
|
|
|
You can use this link [^]to upload your image and share the link here if you want to do so in future
Jibesh V P
|
|
|
|
|
Not from here. Not allowed by the organization.
"The request was denied due to a content categorization online-personal-storage."
|
|
|
|
|
Quote: Every MessageBox is doing the same
so this is nothing to do with the SaveFileDialog. Is just the MessageBox in your application behaves like this or same for the whole PC?
Jibesh V P
|
|
|
|
|
Just my app. (And on this and my home machine)
|
|
|
|
|
can you provide some more information about your Form where you display the saveFileDialog. how the form is displayed? was it a MDI Child? or a simple winform.
Jibesh V P
|
|
|
|
|
It's just the main form of a winforms app. The only settings on it that aren't the default are:
DoubleBuffered : True
StartPosition: CenterScreen
|
|
|
|
|
that's strange . hmmm.. lets try all other possibilities then.
1. Clean and Rebuild all your solution
2. create a new sample winformn with one button on it and to call the same method, if it works there something is modified in your code.
handled any other events?
Jibesh V P
|
|
|
|
|
1. Done multiple times
2. other events:
Closing (prompts to save files)
Load (sets an MRU menu and lcoses the Splash form.
Thought it might be the Splash, but taking that out didn't fix it.
At this stage, I think I'll just go with a home-built prompt form instead of the MessageBox. At least that I can set to topmost...and it works. (It's also nice to have it look like the rest of the program instead of generic Windows box popping up.)
|
|
|
|
|
FYI, the Help button raises the HelpRequest event. It won't bring up the context sensitive help available via F1 or the ? button in the title bar, which probably comes courtesy of the Control.HelpRequested event.
Alan.
|
|
|
|
|
This will happen if you're creating the message box in a different thread. Make sure that any event handlers on asynchronous processes (network communication, serial ports, BackgroundWorker, TPL or ThreadPool background tasks, etc) that refer to the UI get BeginInvoke'd.
You mentioned a splash screen ... that is often done on a separate thread to the main UI, so check you haven't ended up creating message boxes in that thread.
|
|
|
|
|
No threading in the app. Not even the Splash. No "weird" things involved except creating some bits and pieces on the fly.
I even tried setting the owner on the dialog, hoping it would pass it along and fix the problem, but to no avail.
Another odd thing the app does: when starting, it will appear on the screen wherever the mouse cursor happens to be, i.e. start it on monitor 1, then move the mouse over to monitor 2 to do something else and it will show up over there on monitor 2. (Extended display, dual monitors)
Programming is SO much fun. :p
|
|
|
|
|
|
Hmmm... ForegroundFlashCount was set to 7.
We'll see. Thanks.
|
|
|
|
|
I need a thread to invoke any delegate that I send to it.
What is the accepted pattern for having a .NET thread process messages?
Should I:
1. Create a hidden Form and override the WndProc function?
2. Use a Background Worker? (The problem with the Background Worker is that you can't send it a message if it's already busy.)
3. Use a loop with an AutoResetEvent to wait for new messages?
4. Something else?
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
Richard Andrew x64 wrote: 1. Create a hidden Form and override the WndProc function?
No, that thread is meant to handle the UI. It'll hang (along with the UI) if it's already busy, as stated in point 2.
Richard Andrew x64 wrote: 2. Use a Background Worker? (The problem with the Background Worker is that you can't send it a message if it's already busy.)
One can only process one thing at a time. You could consider queuing the request, or to use multiple threads.
Richard Andrew x64 wrote: 3. Use a loop with an AutoResetEvent to wait for new messages?
Loop within a Thread[^] from the ThreadPool . Easiest would be to check for new items at the begin of the loop
|
|
|
|
|
That depends on what you really need.
In my case I created a class (ActionRunner... and later a RunnableRunner). I use a Thread from my own pool of threads. It waits for a new Action (using a ManagedAutoResetEvent) and uses a Queue to effectively queue the Actions.
So, while there are items in the queue they are executed. When there are no more, an wait is done. My own ActionRunner is disposable, but that's to guarantee that I free the thread at the right moment. I consider it the best solution as it does not creates an unnecessary window and because the messages are real .Net actions (and not some number that must be processed by a switch).
|
|
|
|
|
Depends on what you need.
If you want to respond to messages and spawn parallel tasks that don't depend on each other, then check out the Task Parallel Library, or BackgroundWorker.
If you want a queue of messages that a thread works through one by one, then I'd implement a background thread class (i.e. wrap a Thread) with a Queue<Message>, and do the queue pumping myself.
|
|
|
|
|
Hi! How to end session after logging out? I am facing a problem that when clicking on logout session ends. After clicking on back button, previous page repeats again. This happens in all the pages of my project.
Here is the code for logout link..
protected void linklogout_Click(object sender, EventArgs e)
{
if (linklogout.Text == "Log Out")
{
Session["username"] = null;
Session["userid"] = null;
Session.Abandon();
Response.Redirect("~/index.aspx");
}
}
Can any one help me?
|
|
|
|
|
I would have a read of this
how do you programatically end a session in asp net[^]
Lobster Thermidor aux crevettes with a Mornay sauce, served in a Provençale manner with shallots and aubergines, garnished with truffle pate, brandy and a fried egg on top and Spam - Monty Python Spam Sketch
|
|
|
|
|
<script language="JavaScript">
javascript:window.history.forward(-1);
</script>
this is how i ends in asp.net
|
|
|
|
|
You are successfully killing the session there, so the previous page should no longer be active. (That is, nothing on it should work, because there will be no valid session for any action, and F5ing it should result in a failed authorisation and a return to the login page.)
What you need to do if you don't want browsers to show the page is make all your secure pages uncacheable. To do this in all browsers I think you need to set Pragma: no-cache, Cache-Control: none and also Expires: to a date in the past.
|
|
|
|