Click here to Skip to main content
15,892,965 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
hi please help me

following error:object reference not set to an instance of an object
is coming at that line why it is?

if (frmEmployeeEnroll.ActiveForm.UseWaitCursor == true)
return;
Posted
Comments
Meysam Toluie 17-Dec-13 5:57am    
The best way to understand is tracing the program and find out what is null in line which error occur.

Hi,

So you have found the error line, Fine
One more thing you need to do, Use Quick Watch or Add Watch[^] to see what you have in frmEmployeeEnroll.ActiveForm.UseWaitCursor.
Error is because frmEmployeeEnroll.ActiveForm.UseWaitCursor is null

So see it by yourself and try to pass the value to the variable.

Hope this helps you a bit.

Refer how to use Quick Watch or Add watch to avoid future object reference errors.

Regards,
RK
 
Share this answer
 
Comments
Maciej Los 18-Dec-13 10:30am    
+5!
♥…ЯҠ…♥ 18-Dec-13 22:58pm    
Thanks Maciej.... ;-)
I guess there is NO active form while that line is executed. See the documentation [^].
 
Share this answer
 
Comments
Sergey Alexandrovich Kryukov 17-Dec-13 4:37am    
This reason is the most likely, a 5. Please see my answer for some more detail.
—SA
Maciej Los 18-Dec-13 10:30am    
+5!
Because one of the parts of frmEmployeeEnroll.ActiveForm is null

It could be either: what you need to do is put a breakpoint on the line, run your application in the debugger, and then look at the two parts when the error occurs to see which it is. Then look back through your other code to find out why.

We can't do that for you: we don't have access to your computer, or know how to get your application to execute that code if we did...
 
Share this answer
 
Comments
Member 10192073 17-Dec-13 4:31am    
my complete code is

if (frmEmployeeEnroll.ActiveForm.UseWaitCursor == true)
return;

if (this.btnvalidate.Text == "Validate")
{
string strEmployeeID = txtEmpID.Text;
fetchEmpDetails(strEmployeeID, frmlogin.string_CmpCD);
//Added below 3 lines on 02.01.2012
bool_PhotoCaptured = false;
bool_TemplatesCaptured = false;
bool_Authorised = false;
btnEnrollFp.Enabled = true;

}
else
{

initializeForm();


}

and error is coming in this line

if (frmEmployeeEnroll.ActiveForm.UseWaitCursor == true)
OriginalGriff 17-Dec-13 4:40am    
Doesn't matter - the reason why one of them in null is occurring before the "if" line you first mentioned - so code below that is not being executed anyway.
First find out which part is null, then look back to find out why.
Most likely, frmEmployeeEnroll.ActiveForm is null. This can easily happen because all forms of the application can be inactive at the moment of call. And I cannot guarantee that frmEmployeeEnroll is not null.

You did not find out the exact reason why "Object reference not set to an instance of an object" is thrown, what object was null.

Not to worry. This is one of the very easiest cases to detect and fix. It simply means that some member/variable of some reference type is dereferenced by using and of its instance (non-static) members, which requires this member/variable to be non-null, but in fact it appears to be null. Simply execute it under debugger, it will stop the execution where the exception is thrown. Put a break point on that line, restart the application and come to this point again. Evaluate all references involved in next line and see which one is null while it needs to be not null. After you figure this out, fix the code: either make sure the member/variable is properly initialized to a non-null reference, or check it for null and, in case of null, do something else.

Please see also: want to display next record on button click. but got an error in if condition of next record function "object reference not set to an instance of an object"[^].

Sometimes, you cannot do it under debugger, by one or another reason. One really nasty case is when the problem is only manifested if software is built when debug information is not available. In this case, you have to use the harder way. First, you need to make sure that you never block propagation of exceptions by handling them silently (this is a crime of developers against themselves, yet very usual). The you need to catch absolutely all exceptions on the very top stack frame of each thread. You can do it if you handle the exceptions of the type System.Exception. In the handler, you need to log all the exception information, especially the System.Exception.StackTrace:
http://msdn.microsoft.com/en-us/library/system.exception.aspx[^],
http://msdn.microsoft.com/en-us/library/system.exception.stacktrace.aspx[^].

The stack trace is just a string showing the full path of exception propagation from the throw statement to the handler. By reading it, you can always find ends. For logging, it's the best (in most cases) to use the class System.Diagnostics.EventLog:
http://msdn.microsoft.com/en-us/library/system.diagnostics.eventlog.aspx[^].

Good luck,
—SA
 
Share this answer
 
Comments
CPallini 17-Dec-13 4:56am    
5.
Sergey Alexandrovich Kryukov 17-Dec-13 12:50pm    
Thank you, Carlo.
—SA
Maciej Los 18-Dec-13 10:31am    
+5!
Sergey Alexandrovich Kryukov 18-Dec-13 11:52am    
Thank you, Maciej.
—SA
 
Share this answer
 
HI follow sergey solution for the theory to understand null reference error.


Try like this,

C#
if (frmEmployeeEnroll != null)
               if (frmEmployeeEnroll.ActiveForm != null)
                   if (frmEmployeeEnroll.ActiveForm.UseWaitCursor)
                       return;
 
Share this answer
 
try
{
--------------------
--------------------
}
catch(Exception ex)
{
throw(ex)
}
by using try catch statement you can trace out the error
 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900