|
how can i create a variable that can be accessed by any Forms in the same project
|
|
|
|
|
Hi,
you can create "global" variables by putting public static variables in some class,
as in:
class MyGlobals {
public static int recordCount;
public static bool modified;
public static bool exitRequested;
}
and then access them as in: MyGlobals.modified=true;
But then this is considered bad practice, since it does not follow OO guide lines;
one should give explicit access, by passing objects to interested parties, not by
publishing them to the entire process.
|
|
|
|
|
thanks allot
i will try it using OO
|
|
|
|
|
I was using Petzold's book to learn Forms in C#. I noticed the nice MenuStrip replacement for Menu and decided to try it out. When using the Menu, the client area does not include Menu but the MenuStrip is placed in the client area. What is the best way to make the client area start below the MenuStrip like it does for Menu?
|
|
|
|
|
After reading further in Petzold's book, MenuStrip is just like StatusBar and ToolBar, they are controls. The client area needs to modified and Petzold recommends using a Panel.
|
|
|
|
|
My code:
//declares the string array
public string[] msg;
...
function one(string name, string message)
{
msg[name] = message;
}
^^^^^^^^
that's what i essentially want to do, but of course it throws an error about not being able to explicitly convert to int. Now if i use:
msg[Convert.ToInt32(name)] = message;
It converts it to '0', and it does that for any value of "channel"
In languages like php you're able to use a string as the identifier in the array, is this at all possible with c#?
Thanks in advance
|
|
|
|
|
Use the generic Dictionary type. It allows you to specify the key and value types:
protected Dictionary<string, string> messages = new Dictionary<string, string>();
protected void function one(string name, string message)
{
messages.add(name, message);
}
Ian
|
|
|
|
|
Well thanks, that works to add and retrieve, but if i try to add data by retrieving the old data and adding text to it and readding it, it crashes.
i.e. (assuming all variables and members are declared )
messages.Add(name,"message 1");
messages.TryGetValue(name,out value);
value = value + "\nMessage 2";
messages.Add(name,value);
|
|
|
|
|
Nevermind, found out during debug mode that i couldn't add it because it's already there
messages.Add(name,"message 1");
messages.TryGetValue(name,out value);
value = value + "\nMessage 2";
messages.Remove(name);
messages.Add(name,value);
^^ that code works great thanks for your help!
|
|
|
|
|
If you know the item you are looking up will always be there, you can simply access the item with the overloaded '[]' accessor:
value = messages[name];
If, however, you suspect the item may not exist in the list, you can use TryGetValue (like you do in your example). This returns false if the item was not found. So you should only use this method if you intend to check the return value:
if(messages.TryGetValue(name, out value) == true)
{
value = value + "\nMessage 2";
messages.Remove(name);
messages.Add(name,value);
}
else
{
// The expected item was not found. What do we do?
}
|
|
|
|
|
You can't add an item to a Dictionary<> with a key that is already in use. Try:
messages.Add(name,"message 1");
if(messages.ContainsKey(name) == true)
{
messages[key] += "\nMessage2";
}
|
|
|
|
|
Good Morning,
i have a problem!
i have a form with a DataGrid.
the form have a KeyPreview properties and i placed it to true.
the form events "KeyPress" i placed the following code:
if (e.KeyChar == (char)13)
SendKeys.Send("{TAB}")
so when i click on enter and the focus is on datagrid on the first row, so the focus goes to third row and not on second.
what's the problem??
Thanks a lot!
|
|
|
|
|
I think you don't need to capture Enter key in DataGridView. Because normally pressing Enter causes to focus goes to next line. For activating movement by "Enter" instead of "Tab" use below code :
<br />
Form_KeyDown()<br />
{<br />
this.SelectNextControl();<br />
}<br />
Don't forget to set all controls TabIndex property.
|
|
|
|
|
Thanks dude!
i didn't know that DataGridView has this movement by "Enter" instead of "Tab", without need to use code.
it was a good tip.
Thank you a lot.
|
|
|
|
|
Hi, I'm looking for a ListView exactly like the Properties panel in VS.NET. Where can I get one?
Thanks!
|
|
|
|
|
|
I have VS.NET 2003 with the .NET framework 1.1 and I don't have such an item in my toolbox! How do I get it?
|
|
|
|
|
Right click the toolbar and select "Choose Items" on the context menu.
led mike
|
|
|
|
|
This is unbeleivable. How did they get the idea of not putting it in right from the beginning!?
|
|
|
|
|
I'm writing a c# app that sends out emails to the developers and managers in the dept. The devs all use outlook and receive an HTML email with nice formatting etc.
The managers like to get their email on the run so might need to receive it on a blackberry. I've now made the email multipart with a text part aswell as an html part but i have no idea how to make sure that the formatting looks ok in plain text. Is there a blackberry email emulator around? Does anyone even know if they have constant screen width?
The biggest problem is that the management data is all tabular and i can see it turning into a huge mess if the formatting isn't good.
If anyone has done something similar in the past i'd love to hear how you wen about it.
Thanks
Russell.
|
|
|
|
|
I have found that finding the max amount of characters the screen can display at a time is the easiest way to format for a specific device. What I do is send an email like so:
1
22
333
4444
55555
666666
7777777
88888888
999999999
1011111111
11000000000
120000000000
1300000000000
ect...
then find the line that does not fit and you'll see how many characters it can display. Keep in mind that the amound of characters can change if you don't have a truetype font or if the characters change in size.
Hope that helps.
(You will need to see one of the managers phones for that to work.)
The only way to speed up a Macintosh computer is at 9.8 m/sec/sec.
|
|
|
|
|
ExpertComing wrote: (You will need to see one of the managers phones for that to work.)
Have you ever tried to wrestle a crackberry from a manager?
I was afraid I might have to do that. I might also be able to get someone to forward something that is formatted well on a blackberry and see how the page is put together
Thanks for the suggestions
Russell
|
|
|
|
|
Hi,
Basically what i want to do is to prevent the webBrowser control to stroe the page information in the internet explorer history.. is there any way to do this?
regards
Q@!$3r
|
|
|
|
|
use it...
<%@ OutputCache Duration="0" Location="None" VaryByParam="none" %>
or
VB.NET
Response.Cache.SetCacheability(HttpCacheability.NoCache)
C#
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Parwej Ahamad
g_parwez@rediffmail.com
|
|
|
|
|
well i am using windows form and I think this is for web,,,, sorry if I am wrong..
Q@!$3r
|
|
|
|