|
1. This point is pretty simple, there could be many cases where you are trying to access a property of a null item which is throwing the exception.
For example, if MO["Whatever"] doesn't return a valid object, it returns a null. You are then trying to access the ToString() method over this object, which is actually null, so it is like null.ToString(). You cannot access any of the properties on null.
Ideally you must perform checks like
object temp = MO["Whatever"]
if (temp != null)
{
processItem.SubItems.Add(temp.ToString() + " Bytes");
}
Note: Null checks must be a "taken for granted" coding style.
2. I am thinking, don't clear the list. You then use listView.Contains(..) method (or a similar implementation by you) to first check if the new item is present and if it is, don't add it.
Add a reference to all the current items of the list view not checked to a collection. This will be the list that got removed (if you need that) and then remove these items from the list. There will be much less confusion this way.
There has to be more to life than just this
-- modified at 1:01 Friday 24th February, 2006
|
|
|
|
|
I have a variable defined as public in form1 and am trying to assign a value to it in form2, but when I try to run it I get this error message "The name 'x' does not exist in the current context" . I have tried to search in my books and in the help files but i am just missing. I am probably over thinking it but I just can't seem to find it.
|
|
|
|
|
Care to post code snippets? 1 with the variable declaration in form1 and another with the assignment statement in form2.
--------
"I say no to drugs, but they don't listen."
- Marilyn Manson
|
|
|
|
|
form1 varible declaration
public class Form1 : System.Windows.Forms.Form
{
public Form2 Form2= new Form2 ();
public int x = 0;
....
}
form2 assignment statement
private void Form2_Load(object sender, System.EventArgs e)
{
//this is where i think the problem is
x = 3;
}
|
|
|
|
|
Whoa, hold on there. That code looks so...
ok, see, if you want to access a public variable of form 1 in form 2, you an object of form2 must have a reference to an object of form1.
So, the code should be:
public class Form1 : System.Windows.Forms.Form
{
public Form2 Form2= new Form2 (this);
public int x = 0;
....
}
// Form2 class
public class Form2
{
private Form1 owner;
// Constructor
public Form2( Form1 form1)
{
this.owner = form1;
}
private void Form2_Load(object sender, System.EventArgs e)
{
//this is where i know the problem is
owner.x = 3;
}
...
}
with this, the Form1 object's variable x will be set inside Form2 after Form2 loads. Please read up on the concepts of classes and objects.
There has to be more to life than just this
|
|
|
|
|
Although Praveen response is perfectly good, I consider (and he probably also does, reading his comment on the first line) that you should review your design. You are implementing one of the worst design anti-pattern, tight coupling (Re-Coupling). In this design, 2 objects depend on each other. Form1 depends on Form2 which depends on Form1.
You should implement something else, maybe event-base, or interface-based.
--------
"I say no to drugs, but they don't listen."
- Marilyn Manson
|
|
|
|
|
Declare an instance of form2, then pass in the variable value to a public method in form2 via a method in form1...
---
public partial class Form1 : Form
{
Form2 form2;
...
private void SendValueToForm2(variableValue)
{
form2.SetValue(variableValue)
}
---
HTH
Jonny
|
|
|
|
|
hi,
I am trying to make my labels transparent in my application for PocketPC.
myLabel.BackColor = Color.Transparent;
does not seem to work.
will appreciate if someone can help.
regards,
rnv
|
|
|
|
|
hi,
i have a c# network based system, in which multiple clients connect to a central server. there is a server application and there are many client applications installed in each of the network workstations.
what i want to do if i disconnect the LAN cable, from the workstation, my server will know it and will prompt the admin for that.
how will do that?? help pls.. tnx..
i have no problem if the client closes the clientApplication, the server workstation list would immediately be updated. but if i disconnect the cable the list is not updated.
|
|
|
|
|
Usually in client-server architecture, the initative must be taken by the client to contact the server. The server does not go searching for the client.
A problem similar to yours is also faced by Web Servers like IIS, which maintain a session per client that connects and session takes up memory on the server. So the session must be destroyed when the client disconnects. But web browsers like IE do not inform the server on being closed. So server comes up with a simple mechanism of destroying the session. If the client does not connect for a long time (maybe 15 minutes), the session gets automatically destroyed.
You can adopt a similar concept. Also, a live client could send some dummy ping messages at regular intervals, to keep the session active.
There has to be more to life than just this
|
|
|
|
|
Thanks for the response... i think ill adopt that method in my client/server application...Thanks again!
|
|
|
|
|
Anyone knows how to get a video frame from the video object mentioned in the title ?
thanks
|
|
|
|
|
How can I overload a constructor elegantly where the body of the multiple cnstr's holds the same code. For instance:
public C( string s, double p )
{
local_s = s;
local_p = p;
}
pubilc C( double p )
{
local_p = p;
}
I'd like something such as:
public C( string S, double p )
{
local_s = s;
C( p );
}
but the compiler complains 'C' denotes a 'class' which is not valid in the given context. Of course I could write a private function call to load 'p':
public C( string s, double p )
{
local_s = s;
save( p );
}
public C( double p )
{
save( p );
}
private save( double p )
{
local_p = p;
}
but this seems inelegant.
Please advise. Thx.
|
|
|
|
|
Try :
public C( double p )
{
local_p = p;
}
public C( string S, double p ) : this( p )
{
local_s = s;
}
----------------------------
Be excellent to each other
|
|
|
|
|
Interesting, I've not seen this syntax before.
I understand the class declaration
public class C : A {
// foo
}
but ':' in a constructor? Would you pls elaborate a bit?
Thx.
|
|
|
|
|
As part of the constructor declaration you can call a base constructor or another constructor in the same class. This is very convenient for constructor overloading:
class MyClass : AnotherClass {<br />
<br />
private int b;<br />
<br />
public MyClass(int a, int b) : base(a) {<br />
this.b = b;<br />
}<br />
<br />
public MyClass(int a) : this(a, 42) {}<br />
<br />
public MyClass(bool a) : this(a?1:0) {}<br />
<br />
}
---
b { font-weight: normal; }
|
|
|
|
|
|
i want using this code
public Form1()<br />
{<br />
InitializeComponent();<br />
Thread thrd = new Thread( ThreadStart(this.MyMethode()));<br />
thrd.Start();<br />
}<br />
private void MyMethode()<br />
{<br />
label1.Text = DateTime.Now.ToString();<br />
Thread.Sleep(1000);<br />
}
but this error occurs
D:\Help Documents\C# Projects\Threading(WinApp)\Form1.cs(23): 'System.Threading.ThreadStart' denotes a 'class' which is not valid in the given context
what is problem?
---------------------
Areff Bahrami(KAVEH)
Areff.HB@Gmail.com
---------------------
|
|
|
|
|
Try:
Thread thrd = new Thread( new ThreadStart(this.MyMethode));
----------------------------
Be excellent to each other
|
|
|
|
|
Answer from Nicholas is very good, but your code will also generate a run-time exception when executing the label1.Text = .... from the other thread, because the control was initialized in another thread.
Change to something like:
class Form1
{
private delegate void SetLabel1TextDel();
public Form1()
{
InitializeComponent();
Thread thrd = new Thread( ThreadStart(this.MyMethode()));
thrd.Start();
}
private void MyMethode()
{
if (this.InvokeRequired)
{
this.Invoke(new SetLabel1TextDel(this.SetLabel1Text));
}
else
{
this.SetLabel1Text();
}
Thread.Sleep(1000);
}
private void SetLabel1Text()
{
label1.Text = DateTime.Now.ToString();
}
--------
"I say no to drugs, but they don't listen."
- Marilyn Manson
|
|
|
|
|
Thank you Nicholas and Michel
---------------------
Areff Bahrami(KAVEH)
Areff.HB@Gmail.com
---------------------
|
|
|
|
|
hi
i want to begin 3d programming with OpenGL and i am professional 3dsmax user.
how to begining openGL programming in c# ?
please give me an article with example because i am very beginner for 3d programming.
and what is needed for opengl programming ? (please give me url for download OpenGL SDK)
thanks..
|
|
|
|
|
Is there a way to code a ContextMenu so it looks like the Windows Start menu?
OK first how do you assign image to a item in menu so you see the icon and then text?
In the end we're all just the same
|
|
|
|
|
I am going to write an application to read a video file (mpeg4)...then do some object tracking...so i need to grab individual frames...scan the pixels..etc etc....
Any idea if C# is suitable for such an application ? If yes..any help is more than welcomed !
Thanks
|
|
|
|
|
Hi
I develop a mobile device with a Touch-Screen (1024*768) with XP-Embedded. The application should be region/language independet.
The standard XP On-Screen-Keyboard is too small.
Can I manipulate the size of the buttons programmatically?
or
Is there a way to program a multi-language keyboard myself?
or
Does anybody know a good 3rd-Party-Tool/Library programmed in C#?
Thanks and best regards,
Martin
|
|
|
|