|
Instead, why not disable the button while the execution is going on?
The word "politics" describes the process so well: "Poli" in Latin meaning "many" and "tics" meaning "bloodsucking creatures."
जय हिंद
|
|
|
|
|
why don't you disable the button when the user first clicks ? (and enable it when the processing completes)
Disabling will make the processing implied rather than clicking and then being informed.
|
|
|
|
|
Hi,
From Chandrakanth..
Thnaks for your reply. Actually we shold not disable that button.
'
We have to display error message .
Requirement is like that.
If any suggestions please give me message...
Thanks and Regards
Chandrakanth
|
|
|
|
|
There is nothing Holy about requirements and when they are nonsensical it might be better for everyone if you suggest an improvement to the relevant stakeholders.
That said, all the information you need to code this is to know if the process is running or not. Since only two states are possible, a bool is fitting:
bool running;
With this new state available, you need to set it true when the process starts, false when it ends, and then in your event handler take different courses of action depending on the state of this flag. It really is that simple.
(A general hint: This approach, asking yourself "what information do I need?" first, very often makes solutions to simple problems appear almost automatically.)
void btnRun_click(object sender, EventArgs e)
{
if (btnRun.Tag != null)
MessageBox.Show("Not now you idiot, I'm busy.");
else
ThreadPool.QueueUserWorkItem(new WaitCallback(process));
}
void process(object state)
{
running = true;
try
{
...
}
finally
{
running = false;
}
}
(The "object state" parameter is required to conform to the WaitCallback delegate signature - you may of course also use it to actually pass information to the method if convenient.)
Hope this helps,
Dag
|
|
|
|
|
I had a thought of threads. But I did not felt writing this much wothy enough if enabling disabling alone could do.
The word "politics" describes the process so well: "Poli" in Latin meaning "many" and "tics" meaning "bloodsucking creatures."
जय हिंद
|
|
|
|
|
I have an application that connects to an MDSE database and it was compiled using VS NET 2003. When I run it from the developers workstation it works fine but if I run it from other workstaion I get an error "Object reference not set to an instance of the object" then I install VS NET 2003 and works fine.
I have checked the following:
-Dependencies to ensure DLL required are present on the target
-ODBC configuration
-NET versions
What else can I check?
|
|
|
|
|
Have you traced the point where the application crashes ?? You can put in a MessageBox/Writeline to find the exact point where it crashes
There might be many possibilities,
Does the release executable only crash or both release and debug crash ?
Does it refer to some resource (file etc) whose path is wrongly interpreted ??
|
|
|
|
|
Hai to every one
While sign in our system my C#.NET Program application should be load first without any action taken. And while we minimize it should be minimized in Quick launch.
with regards
sakthi
|
|
|
|
|
Try this[^]. Or you can make a windows service.
The word "politics" describes the process so well: "Poli" in Latin meaning "many" and "tics" meaning "bloodsucking creatures."
जय हिंद
|
|
|
|
|
The simplest way to make the application start automatically is to place the executables in the Window's Startup folder
Since d@nish never mentioned about Quick launch -
Article on adding your application to Quick Launch[^]
Edit - I think(and even d@nish) that you meant systray ?? [^]
|
|
|
|
|
Oh missed that. Is that quick launch or system tray where application should minimize to?
I think it should be system tray.
The word "politics" describes the process so well: "Poli" in Latin meaning "many" and "tics" meaning "bloodsucking creatures."
जय हिंद
|
|
|
|
|
Edited my response
|
|
|
|
|
Please tell me about the method "System.Type.InvokeMember" used in reflection with a sample peice of code showing its usage.
Neeraj Rawat
|
|
|
|
|
Have you read the documentation[^]. It includes both explanations and examples.
|
|
|
|
|
I have declared my form as a class member variable like this: public Settings setting; (the form i made was called Settings.cs) because i want to only be able to show it once. i am trying to open the form like this: setting.ShowDialog(); in a public, non static method.
whenever the method is run, i get the error in the title... what is i doing wrong?
setting is showing in the helper, autofill box thing as i type, as is showdialog...
thanks
sam
|
|
|
|
|
You don't create an instance anywhere. You could for example change the member declaration to:
public Settings setting = new Settings();
|
|
|
|
|
hmm ok, but that creates the form as soon as the app starts and waits for the showdialog, which i thought wasnt the best way of doing it, i only need the form every now and again... also, it gives an error if i try and open the form twice, to i need to use the "try...catch" thing?
theres alot more explanation in another thread of mine...
thanks
|
|
|
|
|
Yes that creates the form immediately. If you want, you can put the instantiation just before the ShowDialog line. Something like
settings = new Settings();
settings.ShowDialog();
...
|
|
|
|
|
already tried, this allows many forms to be created, i only want the one...
|
|
|
|
|
samskiter wrote: I have declared my form as a class member variable ... because i want to only be able to show it once
IMO that does not make sense. Now each of the methods in that class could show the Form over and over again.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
modified on Sunday, June 12, 2011 8:26 AM
|
|
|
|
|
its just the advise i got, have a look at my other thread...
|
|
|
|
|
Hi,
I did not read through that entire thread, probably the advice you got is correct, but the reason you mentioned does not fit.
My advice to you is make sure you understand why something does not work, and why the fix does work, don't just try different things until one of them works.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
modified on Sunday, June 12, 2011 8:26 AM
|
|
|
|
|
hmmm, well i didnt know u could use the "new" command outside of a method, i think i do understand the solution u gave now. is there any other way of making a new instance of the form only within my method, but that can only be opened once? at the minute all my method does is show the form, to me this seems to make the application more bloated (ie always having the form there, just showing and hiding it) i can tell its there cos the form itself has a notifyicon in it, and as soon as i start debugging it appears in the tray area.
|
|
|
|
|
You could make the form a Singleton (Google for it), so there's only ever one instance of it but it's not created until it's first needed.
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia)
|
|
|
|
|
thanks, i had a look, seems like its just code to check if one already exists. and so i may aswell just put a check in my method that starts the form:
try
{
this.setting.Activate();
}
catch
{
this.setting = new Settings();
this.setting.Show();
}
i think i will stick with this code, i was just thinking there was some way of declaring/calling my form that would do this for me. thanks anyway guys
|
|
|
|