|
even i m not sure from the code given by u
copy the whole code and paste it over here so that i may be able to answer u correctly
currently i can just guess that instead of declaring it as private Control control1;
just declare it as
public Control control1;
|
|
|
|
|
Rick van Woudenberg wrote: private void InvokeMethodOnControl()
{
Control.Hello = "a value";
control1.Method(); <-insert breakpoint here
}
Have you tried to set up breakpoint and step into InvokeMethodOnControl? What is happening?
"Throughout human history, we have been dependent on machines to survive. Fate, it seems, is not without a sense of irony. " - Morpheus
"Real men use mspaint for writing code and notepad for designing graphics." - Anna-Jayne Metcalfe
|
|
|
|
|
Hi Guys,
Thank you all for trying to help me I highly appreciate it ; However, it's extremely hard to explain what I mean. So I hacked together a little testapp that demonstrates the error. It's attached to this post and it's zipped. Just run the binary, and you'll know what I mean.
http://cc786011-b.eo1.fl.home.nl/download/files/TestApp.rar[^]
Cheers,
|
|
|
|
|
the variable "f2" seems to occur exactly twice in the entire solution:
once in Form3.cs at line 24: f2.Method(); // This will give an object reference error
once in Form3.designer.cs at line 74: public Form2 f2;
I am not surprised by a NullReferenceException !
|
|
|
|
|
Luc,
I agree , but Form2 form2 = new Form2() , and then form2.Method(); is obviously not going to work. I already have Form2 open, and I don't want to start a new instance of Form2.
So how, in your opinion am I suppose to call the method on the Form2 that is already open .
Any input is appreciated.
Cheers,
|
|
|
|
|
Hi Rick,
your "problem" is the standard issue of passing references around.
if a Form3 object has to operate on an existing Form2 object, it needs a reference to said
Form2 object.
There are many ways to get this done:
- pass the reference when constructing the Form3 object, in your case that could mean:
Form3 form3 = new Form3(this);
This means Form3 needs a constructor that takes a Form2 and stores it in a
data member (your existing f2 could serve that purpose; a private one suffices).
- pass the reference by setting a public variable:
Form3 form3 = new Form3();
form3.f2=this;
fomr3.Show();
using public data members (f2) is not recommended since now anyone can read/write them,
resulting in code that may become hard to understand and maintain.
- pass the reference by adding and using a public property:
Form3 form3 = new Form3();
form3.F2=this;
fomr3.Show();
and inside Form3 add:
public Form2 F2 { set { f2=value;}}
this is the recommended way: the property exists for a specific purpose, and since
it is public, it deserves a descriptive comment (triple slash).
Hope this helps.
Added:
whatever approach, you may want to test f2 against null before using it:
if (f2!=null) f2.Method();
And there are still other ways of acting on external objects; they would use events
and delegates.
-- modified at 7:36 Saturday 16th June, 2007
|
|
|
|
|
Hi Respected Sirs,
sir i have to develop a unicode symbol dialog like in MS Word , i have done it , i have a panel in my form and again a panel inside first panael i m drawing rectangles in this second panel , i have a combobox for all the languages , now when i click in combobox it shows me all the languages and drwas the characters now when i click on a language in combobox and click on the second panel it doesn't shows me the characters in the area where combobox is i mean the drop area of combobox which is over the second panel . pls help to get rid of this problem.
Pravo
|
|
|
|
|
hi sirs,
i m praveen a new c# programmer , i have to develop a chat server in c# using Socket not TcpListener , now i don't know how to make my socket which can listen infinite number of clients i can do it with infinite while loop but its not working pls provide me some code , how to do it .
Thanx a lot for all of u .
Pravo
|
|
|
|
|
Hi
I think you all viewed that in "My Computer" window (WinXP) at very side some frames are there.
These frames/Groups are scrollable and moveable automatically.
Is there any C# equivalent frame. I love to use it in my application.
Reply please;
Regards.
Syed Shahid Hussain
|
|
|
|
|
|
Thanks a lot Dear Friend. I really need it. Now I'll check it that how optimized that control is because I've seen a pannel control before that had some threading problem......
Any way really thanks for ur assistance.
God Bless You.
Syed Shahid Hussain
|
|
|
|
|
What would be the output of following question
<code>
using System;
namespace Statements
{
class Class1
{
public int Value = 0;
}
class Test
{
static void Main()
{
Class1 e = new Class1();
Class1 f = e;
e.Value = 1;
f.Value = 5;
Console.WriteLine(e.Value.ToString() + " " + f.Value.ToString());
Console.WriteLine((object)e.Value == (object)f.Value);
Console.WriteLine((object)e == (object)f);
Console.WriteLine(e == f);
Console.ReadLine();
}
}
}
</code>
try giving the output manually (i got it wrong )
And please explain your answer
|
|
|
|
|
When you instatiate f, f.value is = 0 and f acts as a pointer to object e.
e.Value = 1; does not have any impact and it Value takes the second assignment value.
therefore
e.Value = f.Value = 5
False
TREU
TRUE
|
|
|
|
|
Here's my answer (not tested):
5 5
False
True
True
5 5:
You instantiate one object, and reference it from two variables.
That's why when you change the Value field by either of the references the changes are "reflected" in the other reference variable.
False:
The Value field is a value-type member.
This means that casting it to an object, demands boxing, which results in the creation of two completly different objects, holding the same numeric value.
True:
It doesn't matter if you cast an object to its parent type.
It still points to the same object in memory.
So its simply doing a reference comparison.
True:
You set both reference variables to point to the same object in memory, and the "==" operator compares their references.
Corrections? Opinions?
Regards,
Shy.
|
|
|
|
|
Correct Answer is
5 5
False // here i was wrong
True
True
Thanks for Explanation
Regards
Amar
|
|
|
|
|
Hello,
If I serialize multiple objects to the same file, is it possible to somehow deserialize them not in the same order?
Thanks in advance,
Shy.
|
|
|
|
|
hi
i'm having a issue with memory management in a COM which uses MSXML (cause of memory leak)
if i use a c# wrapper around the COM which is then called from .net webservice will CLR take care of memory management for me( essentially Garbage collection)
if not by design can i force GC to take care of memory leaks in COM
this is very urgent, please help !
sorry i'm posting it in different forums at a time but hope you will see a desparation :->
|
|
|
|
|
The GC does not re-claim unmanaged memory.
Regards,
Shy.
|
|
|
|
|
thanks for the reply,
but can i force it in anyway, is it possible if i use COM as RCW
|
|
|
|
|
You cannot force the GC to collect objects from unmanaged memory.
The GC works only on objects created by the CLR.
Hence the expression "UNMANAGED memory".
If your COM object contains cleanup methods, use them.
logicaldna wrote: is it possible if i use COM as RCW
Sorry, but I don't think I know what RCW means...
Maybe someone else here can help you with that.
|
|
|
|
|
shyagam wrote: If your COM object contains cleanup methods, use them
i have tried all and even COuninitialize is not cleaning the memory dam this MSXML
thanks anyways
sagar
|
|
|
|
|
When using COM objects in C# setting an object to null isn't all that's required to signal it ready for Garbage Collection. First a call must be made to Marshal.ReleaseComObject(aComObjectVariable) to decrement it's reference counter in the RCW.
MSDN[^]
|
|
|
|
|
logicaldna wrote: i'm posting it in different forums at a time
That's not polite and it gets people ticked off and less likely to respond.
"You will see a delete button on each of your posts. Press it." - Colin Angus Mackay
|
|
|
|
|
Hi All,
I am new to c# and i am currently facing a problem in writing to a app config file.I am able to write to a config file if its read only access property is removed.Is there any way to give write permissions to the config file programatically.
Regards
DilipRam
|
|
|
|
|
try
File.SetAttributes(fileName, FileAttributes.Normal);
|
|
|
|