|
Thank you so much for your help, but I think there was a little misunderstanding of my question here, the problem is that as I work with different services with different operations(and the service to work with becomes known at runtime, when I receive the WSDL file of it from the user), so when writing the code, I don't know the operation names which may be called to put them in a switch.
|
|
|
|
|
In that case I don't think I can help, sorry. Maybe someone else will know.
My current favourite word is: Bacon!
-SK Genius
Game Programming articles start - here[ ^]-
|
|
|
|
|
Hi all,
I am using printDocument as my print function (printDocument.print() ). How can i print paper(more than 1 page) with landscap instead of potrait?
any tips are welcome.
regards
cocoonwls
|
|
|
|
|
|
Hi, Gareth
Thanks for your reply.Yes, i got it. But now i am facing another problem that is it won't print more than 2 page for me.Below is my senario:
I am drawing a chart which using e.graphic.drawline() and some other method.The chart which i draw is over the screen (so, i am using scrollbar to allow user to view the full chart).When printing, it just draw a half of the chart for me (only print 1 page).
Any idea or tips to overcome it?
any tips are welcome.
regards
cocoonwls
|
|
|
|
|
|
Hi, Gareth,
Thank you, I will have a look on that
regards
cocoonwls
|
|
|
|
|
Hi, i have a login form as a child form.
I want to pass the value txtUsername to the parent form. How do i do it?
|
|
|
|
|
There's a great article on this here on CP. Short answer - a delegate.
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
|
If the child form contains this code
public delegate void SendString(string s);
public SendString OnSendString = null;
Then your main form can do this
public void GetString(string theString)
{
}
and in your code that creates the child form:
MyChild dlg = new MyChild();
dlg.OnSendString += new MyChild.SendString(this.GetString);
Then when the child form does this:
if (OnSendString != null) OnSendString("test");
the value "test" is called in GetString in the parent form.
All of this assumes your child form is modeless. If it's modal, then you may as well just assign properties like the other guy said. I assumed that it was modeless from your initial question, you said you want to send something back to the main form. But, if the child form has been closed, then you're not sending anything, properties make more sense in that case.
I can't find the article on communication between forms
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
How do i know if my file is modeless or modal?
I did not close my child form. I use .Hide().
I dont know whether i should close the form or use Hide.
probably u might wanna take a look at my file
here is my project file http://opencube.com.sg/EBMS.zip
|
|
|
|
|
If you call ShowDialog, it's modal. IF you call Show, so the parent form stays active, it's modeless, and that's why you need a delegate. If your main form code stops when you show the child, your main form code knows when the otehr form ends it's life, so you can examine it's state. If you called Show, you don't know when the child form has something to tell you, a delegate lets the form tell you.
If you call Hide, then you're calling Show, I guess. Otherwise, your modal form would freeze your application.
A login form has to be modal, or there's no point. A properties form, would be modeless, you change properties and see the results in the main form. Just some examples.
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
Oh, so inside my FrmMain_Load(), i tried set my childLogin to ShowDialog
i get this error
"Form that is not a top-level form cannot be displayed as a modal dialog box. Remove the form from any parent form before calling showDialog."
private void FrmMain_Load(object sender, EventArgs e)
{
this.toolStripStaff.Visible = false;
this.toolStripCatalogue.Visible = false;
this.toolStripProduct.Visible = false;
this.toolStripOrder.Visible = false;
this.toolStripInventory.Visible = false;
FrmLogin childLogin = new FrmLogin();
childLogin.MdiParent = this;
childLogin.ShowDialog();
stripLblLoginAs.Text = "Login As :";
}
|
|
|
|
|
childForm.ShowDialog(parentForm)
|
|
|
|
|
Yes, you can pass it on the constructor quite often, instead of setting it first. I know you can for a messagebox, for example.
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
benjamin yap wrote: childLogin.MdiParent = this;
This is why you can't do it. Get rid of this line, it makes no sense to have it. Set te Owner property instead ( or Parent, I forget which, but I think it's Owner you want ). This stops your modal form from ever being hidden by it's parent.
benjamin yap wrote: stripLblLoginAs.Text = "Login As :";
This is going to occur *after* your login form has shown.
Now the easy easy way to make this work is to set the DIalogResult to DialogResult.OK only if the login succeeds. Then you can do
if (childLogin.ShowDialog() == DialogResult.OK)
{
// logged in
}
else
{
// failed, close the program or whatever
}
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
Christian, i am very sorry for asking so many question, I just started c# few days ago. Please bear with me
childLogin.MdiParent = this; --> i though this is to link to the parent form?
How do i set to owner property?
|
|
|
|
|
This is a link in an MDI form, I've never used it and it apparently only works to create child forms within an MDI app. childLogin.Owner = this; will do what you want.
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
A dialog is not a MdiChild, so <ode>childLogin.MdiParent = this; can be ignored.
According to my experience:
<br />
childForm child=new childForm();<br />
child.ShowDialog(parent);<br />
works.
My code and I is not professional. take careful advantage.
|
|
|
|
|
hmm after i remove that line, and set to owner property, i get this error when i press the login button
else if ((txtUsername.Text == username) && (txtPassword.Text == password))
{
FrmMain frmMain = (FrmMain)this.MdiParent;
frmMain.toolStripStaff.Visible = true; <----ERROR HERE
this.Hide();
}
Object reference not set to an instance of an object.
|
|
|
|
|
FrmMain frmMain = (FrmMain)this.MdiParent
your login form doesn't have a parent, so the frmMain will be null when running.
try this:
in main form:
LoginForm login=new LoginForm();
login.ShowDialog(this);
if (login.DialogResult==DialogResult.OK)
{
this.toolStripStaff.Visible = true;
........
in login form:
else if ((txtUsername.Text == username) && (txtPassword.Text == password))
{
this.DialogResult=DialogResult.OK;
........
|
|
|
|
|
Great! Thanks alot!
So how do i pass the value of the txtUsername inside my Login to my statusstrip at my mainform
stripLblLoginAs.Text = "Login As :" + login.txtUsername.Text;
|
|
|
|
|
Err, I see, txtUsername is private huh?
define a property:
<br />
public string Username<br />
{<br />
get{return txtUsername.Text;}<br />
}<br />
So, in main form:
<br />
stripLblLoginAs.Text = "Login As :" + login.Username;<br />
|
|
|
|
|
set the txtUsername as public, or just define a public variable in child form.
|
|
|
|