|
Hi,
I have a main form.
I then want to have a second form which only asks me for a URL.
I call the second form within the main form in the following way:
<br />
URL u = new URL();<br />
u.ShowDialog();<br />
Once i done everything i have to do in the second form i want to click ok and return:
<br />
private void btnOk_Click(object sender, EventArgs e)<br />
{<br />
bool valid = true;<br />
try<br />
{<br />
Uri url = new Uri(tbAddress.Text);<br />
valid = true;<br />
}<br />
catch (Exception error)<br />
{<br />
MessageBox.Show(error.Message);<br />
valid = false;<br />
}<br />
<br />
if (valid)<br />
{<br />
MessageBox.Show("URL is valid!");<br />
this.host.Valid<br />
}<br />
<br />
}<br />
How can i retrieve the value of the second form in the sequence of its call?
Thx,
Nuno
|
|
|
|
|
You can make a public property in the URL form that exposes the Uri
Like:
1- add private variable:
Uri url = null;
2- property accessor:
public Uri SelectedUri
{
get
{
return this._url;
}
}
and change this line:
Uri url = new Uri(tbAddress.Text);
to:
this._url=new Uri(tbAddress.Text);
in the parent form, read the property:
URL u = new URL();
u.ShowDialog();
Uri url=u.SelectedUri
|
|
|
|
|
Expose a Property on this second form that holds the Uri that you saved, but let fall out of scope in this code:
bool valid = true;
try
{
Uri url = new Uri(tbAddress.Text);
valid = true;
}
All of these variables get created and set, then drop out of scope before your main form gets a chance to pick this data up. Create a Property on your form when when the user clicks OK, you set the property to the Uri, then set the DialogResult to OK and dismiss your form. Then the main form can check the DialogResult of your second form and, if OK, can pick up the value of that property.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
The easiest way is by making the textbox or whatever data you want to retrieve from this form public. After the ShowDialog method, the values will still be present, and you can just access them (because you made them public). For UI controls you can use the 'modifiers' in the properties window.
-edit: sorry, didn't see the other replies. They're more detailed.
public object BufferOverFlow<br />
{<br />
__get { return BufferOverFlow; }<br />
__set { BufferOverFlow = value; }<br />
}
|
|
|
|
|
One simple question:
How can i tell to a button which is meant to be a OK button, to be pressed when I hit enter?
Thx,
Nuno
|
|
|
|
|
by making it the forms' AcceptButton.
Go to your form, and change the AcceptButton property to your OK button. The function does more than just close your window, so look it up before you start using it fully.
Visual Studio can't evaluate this, can you?
public object moo<br />
{<br />
__get { return moo; }<br />
__set { moo = value; }<br />
}
|
|
|
|
|
Thx people!
Your replies were very usefull!
Thx,
Nuno
|
|
|
|
|
Sorry for my bad English!
I don't know how to communicate between forms and classes.
At start i have a form form1. From here i create an instance of a class for networking und communication with a server. After couple of hours i found out how i can change elements of form1 from the network class (with referencing). But, what is when i go back to form1 and create with a button a new class of (for example) database. How can I communicate with previously created network class AND change propertys in form1?
In Visual Basic it is very easy, but c++ and c#...
Thank you very much!
waldi
|
|
|
|
|
I did not understand the question
If you believe that it's easier in vb, Please post the vb code that makes the same functionality (or a similar one) and let us convert it to C#.
|
|
|
|
|
ok.
Here is a basic sample in VB .NET
http://www.waldemarhuber.de/vbtest.zip
<VB>
there are two forms and a class.
Form1 initializes Form2 -> Form2.Show()
Form2 declares an instance of a class
-> Dim obj As New Class1()
Here is the code of Class1:
Public Class Class1<br />
<br />
Sub New()<br />
MessageBox.Show("hm")<br />
Form1.Text = "test"<br />
End Sub<br />
<br />
End Class
As you can see, I change the caption of Form1 to "test" without problems.
In C# I can't do any changes from the class on Form1 neither Form2, and when i initializes the class from Form1 I also can't do something with Form1. With referencing in the class like this
<c#>
class network<br />
{<br />
private Form1 form_ref = null;<br />
<br />
public network(Form1 f)<br />
{<br />
this.form_ref = f;<br />
form_ref.Text = "hm";<br />
}<br />
...
it does good job. But if I make an instance of a some new class of (for example) database out of class network, I can't change things on Form1 like filling textboxes and so on.
I hope you understand now.
Thank you!
waldi
|
|
|
|
|
You've got serious design issues. This thing is very quickly degenerating into a pile of spaghetti. The VB.NET code is just about directly convertible to C#. But, just because you could do it in VB.NET, doesn't make it a good thing to do.
For example, you're totally violating the concept of encapsulation. The name of your class is "Network". Why is this class concerned with ANYTHING to do with the UI?? It shouldn't be doing anything with the user interface at all.
The Network class' sole concern should be whatever you're doing with the network. Should it need to pass changes or data back to the form that is calling it, it can do this using properties, callbacks, and/or events. This way, you can have ANY form use your Network class without any worries about having certain TextBox controls on your form.
What if you try to use you new Network class in a Windows Service or in a Console app, neither of which have a form?? Well, you'll have to rewrite this class to support these things...
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
Does C# have any advanced string parsing functions other than the ones in the System.Text namespace?
|
|
|
|
|
|
System.Text.RegularExpressions
Regular Expressions are about as good as you can get for string parsing...
Hogan
|
|
|
|
|
How much more advanced do you want to get than the System.Text.RegularExpressions namespace?
|
|
|
|
|
A person literally reading the string?
|
|
|
|
|
|
Your Intellisense string. itself has some good ones.
|
|
|
|
|
Have just developed a windows applicatiion with a SQL 2000 Server as a backend. I however want to display a report on a web browser offline from the SQL 2000 Server.
Can anyone help on this procedure?
|
|
|
|
|
Can you explain a bit more clearly what you are trying to accomplish. Are you trying to display a report generated from data from the SQL Server but you want to be able to view this when the server is not online?
|
|
|
|
|
Hello
I've a question about FormatConditions (Interop.Excel)
I need sent to parameter a string empty value, however in execution mode, the app throw a exception "Additional information: The parameter is incorrect."
See the code below:
rng.FormatConditions.Add(XlFormatConditionType.xlCellValue,XlFormatConditionOperator.xlEqual,"",Type.Missing);
How can I sent a empty string param?
Thks all
|
|
|
|
|
What are you trying to accomplish, a conditional format which checks for an empty string or to delete an existing conditional format. If the former have you tried:
rng.FormatConditions.Add(XlFormatConditionType.xlCellValue, XlFormatConditionOperator.xlEqual, "\"\"", Type.Missing);
Which is an escaped "" sequence, i.e. you're passing "" to the function not an empty string (0 characters in length).
|
|
|
|
|
Hi,
I am having a problem of storing a string into TVReturn.amortization.data[0].balanceAmount (class definitions are given below), where I get the error message saying: System.NullReferenceException: Object reference not set to an instance of an object
at this line where I am testing inserting values into the amortization schedule data
tvret.amortization.data[0].balanceAmount = Convert.ToDecimal("100000");
I have the following class definitions:
public class TVReturn
{
public decimal unknownEventAmount;
public double unknownNominalAnnualRate;
public int unknownEventNumber;
public string cashFlowDataXml;
public TVAmortizationSchedule amortization;
}
public class TVAmortizationSchedule
{
public TVAmortizationData[] data;
}
public class TVAmortizationData
{
public int sequenceNumber;
public string eventDate;
public decimal paymentAmount;
public decimal interestAmount;
public decimal principalAmount;
public decimal balanceAmount;
}
|
|
|
|
|
Abbas82 wrote: TVAmortizationData[] data;
This creates an array. Every object in that array is null, until you call new on it. This is why you're getting this error.
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
Christian Graus wrote: This creates an array. Every object in that array is null, until you call new on it. This is why you're getting this error.
How would I call the new on it? I instantiate the TVReturn object like so
TVReturn tvret = new TVReturn();
what would be my next step?
|
|
|
|