|
Where do i create a private variable.. I got more then 1 child form .. so i have to create individual _isOpen attribute for each childform? wat if a few differnt child form is open...
|
|
|
|
|
Go through the collection of forms in the parent's MDIChildren (IIRC) and check if the form type exist in the collection. If it doesn't exist, make a new one and display it. If it does exist, activate the existing form.
You may want to have a flag or attribute to mark forms that can be opened multiple times and forms that can only be opened once.
|
|
|
|
|
can you give me some example? i just started c# few days back. Please pardon me
|
|
|
|
|
It's a copy and paste code so the code may not compile. This is just to show you how to do it.
public class FormManager
{
private MainForm mainForm;
public FormManager(MainForm mainForm)
{
this.mainForm = mainForm;
}
public virtual System.Windows.Forms.Form GetForm(Type type, object[] args)
{
return GetMDIForm(type, args);
}
private ChildForm GetChildMDIForm(Type type)
{
for (int i = 0; i < mainForm.MdiChildren.Length; i++)
{
if (mainForm.MdiChildren[i].GetType().Equals(type))
{
return (ChildForm)mainForm.MdiChildren[i];
}
}
return null;
}
public virtual ChildForm GetMDIForm(Type type, object[] args)
{
ChildForm form = null;
bool allowMultiple = false;
object[] attributes = type.GetCustomAttributes(typeof(ChildFormAttribute), false);
if (attributes.Length > 0)
{
allowMultiple = ((ChildFormAttribute)attributes[0]).AllowMulti;
}
if (!allowMultiple)
{
form = GetChildMDIForm(type);
}
if (form == null)
{
form = CreateChildMDIForm(type, args);
if (form != null)
{
form.MdiParent = mainForm;
form.WindowState = FormWindowState.Maximized;
form.Show()
}
else
{
throw new Exception(string.Format("Unable to create form of type '{0}'", type.ToString()));
}
}
else
{
form.BringToFront();
}
return form;
}
private ChildForm CreateChildMDIForm(Type type, object[] args)
{
ConstructorInfo ci = type.GetConstructor(System.Type.EmptyTypes);
ChildForm form = (ChildForm)ci.Invoke(args);
return form;
}
public void ShowRole()
{
Wine.Global.FormManager.Instance.GetForm(typeof(Wine.UI.Role), null);
}
}
[ChildFormAttribute(false)]
public partial class Role : ChildForm
{
public Role()
: base()
{
InitializeComponent();
}
}
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
public class ChildFormAttribute : System.Attribute
{
private bool allowMulti;
public bool AllowMulti
{
get
{
return allowMulti;
}
}
public ChildFormAttribute(bool allowMulti)
{
this.allowMulti = allowMulti;
}
}
|
|
|
|
|
Hi, i have a form which is size 500 * 300
I have groupbox, textboxes, and buttons inside that form. When the form is loading into my main mdi parent form, its size is 500*300, when i maximize the childform, my controls all are at the position top left. How do i make it center( when the window is maximize) depending on the screen size?
|
|
|
|
|
Hello everyone,
Two questions about XMLSerializer.
http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer(VS.80).aspx
1.
It is mentioned -- "To increase performance, the XML serialization infrastructure dynamically generates assemblies to serialize and deserialize specified
types."
What means the assemblies?
2.
For the following sample, why creates two XMLSerializer instances, one is s and the other is ser?
Hashtable serializers = new Hashtable();
XmlSerializer s = new XmlSerializer(typeof(MyClass), myRoot);
object key = GenerateKey(typeof(MyClass), myRoot);
XmlSerializer ser = (XmlSerializer)serializers[key];
if (ser == null)
{
ser = new XmlSerializer(typeof(MyClass), myRoot);
serializers[key] = ser;
}
else
{
}
thanks in advance,
George
|
|
|
|
|
George_George wrote: What means the assemblies?
Are you kidding? http://www.google.com/search?hl=en&q=MSDN+%22What+is+an+assembly%22&btnG=Search[^]
George_George wrote: For the following sample, why creates two XMLSerializer instances, one is s and the other is ser?
They are two different samples as discussed in the text preceding the sample code section of the documentation. See the text and the use of the word "otherwise".
led mike
|
|
|
|
|
|
1.The XML Serializer creates an XML serialization assembly per type that you are trying to Serialize\DeSerialize.
you can increase performance using precompiled serialization assembly that you are creating using the sgen.exe utility.
2.Sorry but i dont have a clue for this one.
|
|
|
|
|
Thanks nissims,
1.
You mean CLR will create a new assembly (DLL/EXE) for each type I need to serialize, other than using existing CLR assembly (e.g. System.XML.dll)?
For example, when I want to serialize type Foo, CLR will create something like FooSerialize.dll?
2.
The additional dynamically created assembly will be deleted when I unload the Appdomain? And next time when I run my assembly again, each of the dynamically created assemblies will be created again?
3.
My assembly will invoke the dynamically created assemblies to do serialize/deserialize?
4.
"using precompiled serialization assembly that you are creating using the sgen.exe utility" -- do you have any samples or reference documents?
regards,
George
|
|
|
|
|
Hi,
I'm trying to convince a friend of mine to learn C#, and he's looking for a good book to start with. He has experience with VB 6, but isn't very familiar with oop. Any suggestions? Thanks,
-Ken
|
|
|
|
|
The C Programming Language by Kernighan & Ritchie , since a VB6 coder needs purification before approaching C# language.
(just kidding)
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
(and I meant to put first)
After you read The C Programming Language
Then read Programming Visual C# 2005: The Language by Donis Marshall
Then read CLR Via C# by Jeffrey Richter
I have thousands of dollars invested in manuals and these two were by far the best in my library.
Scott P
“It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.”
-Edsger Dijkstra
modified on Tuesday, May 13, 2008 11:32 AM
|
|
|
|
|
Possibly you wanted to reply the OP,anyway, thank you.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
I dont think you want to leave us and c++,right?
|
|
|
|
|
What are you doing here, child? Back to C++ forum, immediately!
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
BTW did you see previous thread on the C# forum did you remember him?
|
|
|
|
|
No I cannot. Drugz, you know...
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
So see this [^] thread of yourself!
|
|
|
|
|
Oh CPallini is our friend on the c++ forum.
|
|
|
|
|
Those books are good recommendations. Anything by Richter is a good bet. Also get Effective C# by Bill Wagner, Addison-Wesley, $40. 50 advanced topics with concise mundane treatment. No stupid jokes or silly pictures.
|
|
|
|
|
Really a 1? someone not a Richter or Marshall fan?
“It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.”
-Edsger Dijkstra
|
|
|
|
|
If you like you can search with this title "programmer's heaven c# school" I read this book and I think its good book for your friend (of course I think c# is difficult than VB) I dont know C# is simple for me or its simple for all people specialy for memory management (I am working wtih c++)
Good luck!
|
|
|
|
|
Is there a way to determine the measurement units for a given locale using CultureInfo class or some other item in the framework?
Scott P
“It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.”
-Edsger Dijkstra
|
|
|
|
|
Not that I know of - a quick check of MSDN and it seems that setting is mysteriously missing from the CultureInfo class where one would expect it... however what kind of "measurement units" do you need? Just, for example, metric vs imperial units? (the setting for "Metric" or "U.S."
If so, I'd recommend just giving the user the choice, or if it's not an application where that "makes sense", I'd personally be quite comfortable with hardcoding it to:
US = US imperial units
Liberia = US imperial units
Burma = US imperial units
UK = Depends on types of units you're talking about, maybe imperial, maybe metric (officially metric, but they're a strange bunch!)
Anywhere else = Metric units
If you're talking about other measurement, such as how to display the date string or currency or whatever, you CAN get that from CultureInfo, but I guess you already knew that...
|
|
|
|