|
Hi all,
I'll be teaching C# in a school and my audience is quite young(~14-17) so I wanted to ask you what do you think would be the best book I could follow to make them really get into C#? Any suggestions are appreciated.
Regards
|
|
|
|
|
Hi,
I doing an app in winforms. I have groupboxes with few checkboxes or radiobuttons. How do I get the value of selected control from each groupbox.
Thanks.
|
|
|
|
|
The data isn't stored in the groupbox at all. You need to examine the checked property of each control seperately.
|
|
|
|
|
Is it possible to hide any public method or public property of the base class when inheriting that class.
If yes, then how?
Infact I am creating a custom control by inheriting a ScrollableControl and I don't want to show the AutoScroll property to user of my control (developer).
Thanks
-- modified at 12:39 Thursday 10th November, 2005
|
|
|
|
|
|
That's a good short answer there. Direct and to the point!
My: Blog | Photos
"Man who stand on hill with mouth open will wait long time for roast duck to drop in." -- Confucious
|
|
|
|
|
Absolutely hiding isn't possible. But there are a few tricks to accomplish what you are trying to do.
Have a look at this snippet:
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
public override bool AutoScroll
{
get { return base.AutoScroll; }
set {}
}
- It will disable Intellisense in the designer.
- It will hide it from the properties window.
- It won't allow any changes to this property
Note that if a user of your control types yourClass.AutoScroll = false then the compiler won't give any error... but who said that solution was perfect . But if you also add the Obsolete attribute then intellisense will at least give him a hint.
|
|
|
|
|
Dear Programmers
I want Time TextField Not Like DateTimeField he'll be with this format
for example
hh:mm AM
plz if u help me
|
|
|
|
|
You should use the DateTimePicker control.
Set ShowUpDown to true.
Set Format to Custom.
Set CustomFormat to "hh:mm tt".
|
|
|
|
|
Hi,
I have an app that needs to trap mouse events across a form hosting multiple controls for a keep-alive timer. Any help would be greatly appreciated.
|
|
|
|
|
Write handlers for some or all of the mouse events: MouseDown, MouseUp, MouseEnter, MouseHover, MouseLeave, and MouseMove events, and wire them to *every* control on the form.
|
|
|
|
|
Hi, and thanks for responding. Lets say I write mouse events for Form1; how do I wire them to 'every' control on the form?
this.MouseMove +=new MouseEventHandler(Form1_MouseMove);
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
//Do Something here
}
|
|
|
|
|
rich_wenger wrote: how do I wire them to 'every' control on the form?
this.MouseMove +=new MouseEventHandler(Form1_MouseMove);
btnOK.MouseMove += new MouseEventHandler(Form1_MouseMove);
txtName.MouseMove += new MouseEventHandler(Form1_MouseMove);
chkRemember.MouseMove += new MouseEventHandler(Form1_MouseMove); and so on. Or you could also do this:
foreach(Control ctl in this.Controls)
ctl.MouseMove += new MouseEventHandler(Form1_MouseMove); If you have controls inside other controls (panels or group boxes for example), you'll need to do that recursively. If you always use the same handler, the same routine will be called for events raised by any controls.
I hope this helps.
-- LuisR
Luis Alonso Ramos
Intelectix - Chihuahua, Mexico
Not much here: My CP Blog!
The amount of sleep the average person needs is five more minutes. -- Vikram A Punathambekar, Aug. 11, 2005
|
|
|
|
|
And you can use the following sample code to add mousemove event handler to every control on your form (as Luis pointed out).
<br />
<br />
AttachEventHandler(this);<br />
<br />
void AttachEventHandler(Control ParentControl)<br />
{<br />
foreach (Control ctrl in ParentControl.Controls)<br />
{<br />
if (ctrl.HasChild == true)<br />
{<br />
AttachEventHandler(ctrl);
}<br />
else<br />
{<br />
ctrl.MouseMove += new MouseEventHandler(Form1_MouseMove);<br />
}<br />
}<br />
}
|
|
|
|
|
Thanks, I'll give it a try after lunch.
|
|
|
|
|
Your solution works except for the following statment:
Gulfraz Khan wrote: if (ctrl.HasChild == true)
It should actually read:
if (ctrl.HasChildren == true)
Thanks again.
|
|
|
|
|
Hi there,
i'm searching for a way to create a component from a control designer, and pass some parameters to it.
This create an instance of my object:
<br />
IDesignerHost h = (IDesignerHost)GetService(typeof(IDesignerHost));<br />
MyComponentType myComponent = (MyComponentType )h.CreateComponent(typeof(MyComponentType));<br />
What if i want to pass parameters to it?
Bye.
|
|
|
|
|
I will go deeper in my question.
I have already implemented a typeConverter for my component, which looks like that:
public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType)
{
if (destType == typeof(InstanceDescriptor))
{
System.Reflection.ConstructorInfo ci = typeof(FlatTabPage).GetConstructor(new Type[] { typeof(TypeOfTheParameterIwantToPass) });
return new InstanceDescriptor(ci, new object[] { i think the problem is here });
}
return base.ConvertTo(context, culture, value, destType);
}
Where i wrote I think the problem is here, i want to pass the control that actually is being designed. That is, i am designing a control A, and i want to create an instance of control B (from the A designer) passing A itself to it.
|
|
|
|
|
My application has a textbox,how can i make my textbox
enter numeric velues only
thanks
regards paula
|
|
|
|
|
|
|
A Simple way is to use the textbox's KeyPress Event. Check for the key pressed and if it is not a valid key then cancel the event (e.cancel) which will cause the key value not to be displayed.
The code below is an example of the KeyPress event for a textbox that only allows Numerics.
Hope this helps,
Craig
private void txtValue_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)<br />
{<br />
string s = "0123456789" + (char)8 + (char)9 ;<br />
if (s.IndexOf(e.KeyChar.ToString().ToUpper(),0) ==-1)<br />
{<br />
e.Handled = true;<br />
return;<br />
}<br />
}
|
|
|
|
|
i say you sorry for my bad english.
i've a problem with this code:
XmlTextReader reader = new XmlTextReader(@"c:\book.xml");<br />
XmlDocument doc = new XmlDocument();<br />
doc.Load(reader);<br />
<br />
XmlNodeList nodeList;<br />
XmlElement root = doc.DocumentElement;<br />
<br />
nodeList = root.SelectNodes("/bookstore/book/price[text()='11.99']");<br />
<br />
XmlElement newCd;<br />
XmlNode padre;<br />
<br />
foreach (XmlNode oldCd in nodeList) <br />
{<br />
newCd = doc.CreateElement("author");<br />
<br />
newCd.SetAttribute("visible", "true");<br />
<br />
newCd.InnerXml = oldCd.InnerXml;<br />
<br />
padre = oldCd.ParentNode;<br />
padre.ReplaceChild(newCd, oldCd);<br />
<br />
<br />
}<br />
doc.Save(@"c:\prova2.xml");
i have an XML with this structure:
<br />
bookstore<br />
book<br />
price 11.99 /price<br />
author .. author<br />
title .. /title<br />
..<br />
..<br />
/book<br />
/bookstore<br />
if in the code I write
nodeList = root.SelectNodes("/bookstore/book/price[text()>'11.00']");
the nodeList has 1 node because the expression is ok but i don't understand the reason that I write
nodeList = root.SelectNodes("/bookstore/book/price[text()='11.99']");
the nodeList.Count() results 0 and the program returns that there are no nodes matching the expression. the same thing happens if i try to test the content of title, author etc.
Can you help me?
|
|
|
|
|
Works fine for me. Maybe you are loading the wrong XML file? This is the code I used.
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
XmlNodeList list = doc.DocumentElement.SelectNodes("/bookstore/book/price[text()='11.89']");
Console.WriteLine(list.Count);
and this is the XML file I used
<bookstore>
<book>
<price>11.99</price>
<author>X</author>
<title>Z</title>
</book>
</bookstore>
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
Hi Senthil,
I say you thank you for your reply!!! )))
I still have a problem; if i have a document named book.xml in C:\ this code i wrote doesn't work
XmlTextReader reader = new XmlTextReader(@"c:\book.xml");
XmlDocument doc = new XmlDocument();
doc.Load(reader);
XmlNodeList nodeList;
XmlElement root = doc.DocumentElement;
// nodeList = root.SelectNodes("/bookstore/book/price[text()>'9.00']"); <-- this query works
nodeList = root.SelectNodes("/bookstore/book/price[text()='11.99']"); // <-- this query doesn't work
Console.Write(nodeList.Count.ToString());
if i can't solve this problem my work doesn't go on
|
|
|
|