|
A good method is using a singleton class that is loaded on demand.
MyAppSettings - a class that is the equivalent of a global variable:
public class MyAppSettings {
// make private since class should not be intatiated directly
private MyAppSettings() {
// ...
}
// this one property
public string Setting1 {
get {
// read the data from a database or from a file
}
set {
// save the data to a database or file
}
}
private static MyAppSettings _settings = null;
public static MyAppSettings Instance {
get {
if (_settings == null)
_settings = new MyAppSettings();
return _settings;
}
}
}
Not only does this class define global variables, but it insures that only one instance of the data is floating around.
To access you global data:
MyAppSettings.Intance.Setting1 = "xyz";
hope this helps
|
|
|
|
|
Is there a way I can use an object without knowing which object it realy is? for exemple: I have several objects that implement IEnumerable(these objects has arrayList), I need to Implement IEnumerator and I want to do it once. but I don't know for which object I implement it for so when I do : object.arrayList[i] -its an error.
(object doen't have an arrayList property). how can I do it???
thanks in advance , sharon
|
|
|
|
|
Ahhh, the beauty of programming via interfaces [contractual I think is the term]
IEnumerable ie = myobject as IEnumerable
if( ie != null )
{
IEnumerator = ie.GetEnumerator();
...
} HTH,
James
Simplicity Rules!
|
|
|
|
|
I need to know how to call the following win32 api from c#
<br />
BOOL SystemParametersInfo(<br />
UINT uiAction,
UINT uiParam,
PVOID pvParam,
UINT fWinIni
);<br />
I tried with the following PInvoke syntax
<br />
[DllImport("user32.dll")]<br />
public static extern bool SystemParametersInfo(int uiAction,<br />
int uiParam,object pvParam,int fWinIni);<br />
Is substituting object for pvoid okay, where can I find more Info. on this (how do i do substituiton) other than msdn.
Now I need to pass on the address of a Rect to the above function...
the exact win32 api call looks like this...
<br />
::SystemParametersInfo(SPI_GETWORKAREA, 0, &rectSomething, 0);<br />
How do i do this in C#.
Thanks
Kannan
|
|
|
|
|
Kannan Kalyanaraman wrote:
Is substituting object for pvoid okay
No! Use IntPtr instead.
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
Does anybody know how can I find out which window has the focus from my program?
Thanks
Mazy
"The more I search, the more my need
For you,
The more I bless, the more I bleed
For you."The Outlaw Torn-Metallica
|
|
|
|
|
Mazdak wrote:
Does anybody know how can I find out which window has the focus from my program?
You'll have to invoke the API I guess
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
Nish - Native CPian wrote:
You'll have to invoke the API I guess
You mean .NET does not have something for that I have to use win32? I don't like it if I have to do it that way.
Mazy
"The more I search, the more my need
For you,
The more I bless, the more I bleed
For you."The Outlaw Torn-Metallica
|
|
|
|
|
Mazdak wrote:
You mean .NET does not have something for that I have to use win32? I don't like it if I have to do it that way.
I might be wrong Mazy! I guess we both can wait for James Johnson to come back from his weekend trips to answer this question!
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
Nish - Native CPian wrote:
I guess we both can wait for James Johnson to come back from his weekend trips to answer this question!
Yes,we have to wait for C# man of CP.
Mazy
"The more I search, the more my need
For you,
The more I bless, the more I bleed
For you."The Outlaw Torn-Metallica
|
|
|
|
|
Mazdak wrote:
Yes,we have to wait for C# man of CP
Cool! James - The CP C#er
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
Nish - Native CPian wrote:
James - The CP C#er
LOL!
James
Simplicity Rules!
|
|
|
|
|
Mazdak wrote:
Does anybody know how can I find out which window has the focus from my program?
If you are talking about just getting the currently active WinForm in a non-mdi application it would be
System.Windows.Forms.Form.ActiveForm
If you wish to know which control it would be
AciveForm.ActiveControl
For a MDI it would be
System.Windows.Forms.ActiveMDIChild
If you are referring to any windows external to your application, I believe you will need to use the Win API.
Rocky Moore
|
|
|
|
|
Thank you Rocky.
Rocky Moore wrote:
If you are referring to any windows external to your application
Yes,I want external windows.
Mazy
"The more I search, the more my need
For you,
The more I bless, the more I bleed
For you."The Outlaw Torn-Metallica
|
|
|
|
|
As Nish said, and you feared; you have to resort to the Win32 API. This is because you can't create a Control object (the base class for Form ) from an arbitrary HWND, only for one which a Control object already exists.
Perhaps in V.NEXT we'll have such support for a limited window class
James
Simplicity Rules!
|
|
|
|
|
Thank you James.
Mazy
"The more I search, the more my need
For you,
The more I bless, the more I bleed
For you."The Outlaw Torn-Metallica
|
|
|
|
|
I know this is a very basic question but could someone please tell me how to create for example a dialog box for getting user settings ect for my application, or even an about dialog box. Is it as simple as right clicking in the explorer and adding another windows form? If so how do I get my program to display it?
Thanks in advance,
Paddy.
|
|
|
|
|
Paddy wrote:
Is it as simple as right clicking in the explorer and adding another windows form?
Yes.
Paddy wrote:
If so how do I get my program to display it?
YourFrm frm = new YourFrm();
frm.ShowDialog();
Mazy
"The more I search, the more my need
For you,
The more I bless, the more I bleed
For you."The Outlaw Torn-Metallica
|
|
|
|
|
You pretty much have it. It only requires adding another WinForm to your project. In the code you (assuming the name of the new WinForm class is 'Form2') simply something like:
Form2 dlg = new Form2();
dlg.ShowDialog();
when you want to display the form. If can also use "dlg.Show()" if you wish a modeless window.
Rocky Moore
|
|
|
|
|
Thanks for the help that solves that problem for me.
One more question, whats the difference between a windows form and an inherited windows form?
Thanks,
Paddy.
|
|
|
|
|
Paddy wrote:
One more question, whats the difference between a windows form and an inherited windows form?
An inherited Winform is a cool little beast that allows you to inherit the WinForm from a WinForm that you create in another library (DLL) or you own project (if you compiler before you inherit). You can define one form as your base form with controls, then you inherit that form. It will build a form that looks just like the base form. You can add items to the form, you just cannot modify any of the items on the base form. But you can, at any time, modify the base form and those modifications will bubble up to all inherited forms.. Cool!
This is good for a Wizard type window where you have a certian layout. Another use is to simulate a skinning window by creating the base winform with different graphics or colors then dropping in the any of the modified base class DLLs thus changing the appearance of all inherited WinForms that inherit from that base WinForm.
There are many uses Inherited Forms!
Rocky Moore
|
|
|
|
|
Is it possible to open/create a Microsoft Word document in a C# application and to display the document INSIDE the C# application window?
In other words, I want to attach the MS Word window to my WinForm object. Is there a way to treat a Word document like a .NET control?
Thanks!
Johannes
|
|
|
|
|
Prsumably through COM interop, assuming that Word is installed on the target PC.
Christian
I am completely intolerant of stupidity. Stupidity is, of course, anything that doesn't conform to my way of thinking. - Jamie Hale - 29/05/2002
|
|
|
|
|
Don't know if this is what your looking for exactly but it might help!
http://www.csharpcorner.com/Code/2002/Mar/WordFromDotNet.asp
Paddy.
|
|
|
|
|
Hi
Does anyone know how to set margins on edit controls (textbox, combobox, etc) in C# by using managed code?
I used to do it by sending EM_SETMARGINS message in VB6, but I was wondering if there was a way natively supported by .NET.
Thanks,
Mo Inam
|
|
|
|