|
exactly. Remember that when you open form2 from form1, both the forms are open. form1 is not closed or hidden.
so,when you open form2 again from form3, you cannot open a parent from a child. you must be opening a new instance which is different from original form2.
So, yes, you should allow form3 to take data from user, wait for user to click on OK button. if he clicks OK, send a dialogresult OK to form2. also, add a property in form3 which will then be accessed from form2.
I assume that there is no reason for form3 to be open after it has taken the data from user.
|
|
|
|
|
That's correct, the OK button also closes form3 immediately after it passes the data to form2.
I can understand what you mean, and it makes sense, but I don't know much about properties or passing data using a dialogresult if you know of any articles that explain this could you please link them.
When you say "add a property in form3 which will then be accessed from form2" do you mean have an object in form3 where I store the users input and then have form2 access the data and load it into itself as opposed to having form3 pass the data to form2?
|
|
|
|
|
form3:
class Form3:Form
{
private string m_data;
public string Data
{
get
{
return m_data;
}
set
{
m_data = value;
}
}
}
Assign the value of m_data to what you want to send to form2
Add two buttons in this form. set their dialogresult as OK and Cancel.
Form2:
Form3 form = new Form3();
if(form.ShowDialog() == DialogResult.OK)
{
string dataPassedFromForm3 = form.Data;
}
If your problem is sorted, rate the answer.
|
|
|
|
|
Thanks, solved the problem perfectly.
Just a follow up question if you don't mind, how would I pass data from form2 to form3 when its opened?
|
|
|
|
|
through constructor.
class Form3: Form
{
string dataReceived;
public Form3(string _dataToReceive)
{
dataReceived = _dataToReceive;
}
}
|
|
|
|
|
try this way for two forms if it what you want you can do it in three forms.
use delegation:
in form1 create button and textbox and put in the form:
public delegate void dd(string s);
public static dd d;
and put (d=new dd(write);) in public Form1()
then write method (write):
privet void write(string s)
{
textbox1.text=s;
}
in button put:
form2 f2=new form2();
f2.show();
in form2 create button and textbox then in click event put:
Form1.d(textbox1);
|
|
|
|
|
The easy way is to create a static class that contains the data you want to share between forms, and set/get the values for the various forms' controls using that static data.
.45 ACP - because shooting twice is just silly ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
|
|
|
|
|
How to change width of label that is AutoSize
(i mean autosize =true)
i wanna to grow the label in height but with unique width!
(the height must grow with the text that we will pass to label)
|
|
|
|
|
When in autosize, the height is calculated automatically and depends on the selected font, nothing else AFAIK.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read code that is properly formatted, adding PRE tags is the easiest way to obtain that. [The QA section does it automatically now, I hope we soon get it on regular forums as well]
|
|
|
|
|
How can i have label with width = 243 and the hight grow upon the text we pass to it?
|
|
|
|
|
Griff and d@nish already answered that.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read code that is properly formatted, adding PRE tags is the easiest way to obtain that. [The QA section does it automatically now, I hope we soon get it on regular forums as well]
|
|
|
|
|
The height of a label already depends on it's content. If you have a AutoSize label, then handing the label "Hello\nThere\nPaul" as the text will enlarge the height to fit the content. You cannot automatically make a label fixed width, with variable height - to implement this, you would have to set AutoSize to false, and use Graphics.MeasureString to determine the height required and manually set the label control height appropriately.
All those who believe in psycho kinesis, raise my hand.
My 's gonna unleash hell on your ass. tastic!
|
|
|
|
|
AFAIK you got two options:
1. Make use of Graphics.MeasureString method and insert "\n" whenever the width of text goes over the label width.
2. There is an article here at CP that shows creating vertical labels. You can customize that and change the text draw mode while keeping the way label grows in size same.
"No matter how many fish in the sea; it will be so empty without me." - From song "Without me" by Eminem
|
|
|
|
|
I didnt get anything and now i am confused!
Please Help
|
|
|
|
|
Graphics.MeasureString returns the approximate width that will be needed to display the text on screen. Now, you know the width of the label. So, you can get the width of the text you want to print in the label. Next, add "\n" at appropriate places so that the width of each line is less than that of the label.
In the second way, you need to search the CP article for vertical labels. The only difference in that label and the one you need is the way text is displayed in the label. So. just change that and you should be done.
"No matter how many fish in the sea; it will be so empty without me." - From song "Without me" by Eminem
|
|
|
|
|
No ans!!!!!!!!!!!!!!!!!!!!!!!!1
|
|
|
|
|
What do you want us to do? Hold your hand while you type it in?
All those who believe in psycho kinesis, raise my hand.
My 's gonna unleash hell on your ass. tastic!
|
|
|
|
|
|
i ma copying a file from a location to a destination
but now i m unale to separate the file name that is come in with the whole path of the file
please help me
|
|
|
|
|
make (for)loop that run in reverse searching for('\\')char then(break)
|
|
|
|
|
Why? There is a string.LastIndexOf method...
All those who believe in psycho kinesis, raise my hand.
My 's gonna unleash hell on your ass. tastic!
|
|
|
|
|
There are quite a few ways to do this, it will depend on what file information you have available.
String: Use String.LastIndexOf to find the final '\' character, and String.Substring to extract just the file name. Or just use Path.GetFileName(string s) to extract it from any string.
FileInfo: Use FileInfo.Name to extract just the file name.
There are probably others, but these should cover most cases.
All those who believe in psycho kinesis, raise my hand.
My 's gonna unleash hell on your ass. tastic!
|
|
|
|
|
Read up on the Path class; it holds everything you could want about file path strings.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read code that is properly formatted, adding PRE tags is the easiest way to obtain that. [The QA section does it automatically now, I hope we soon get it on regular forums as well]
|
|
|
|
|
That is the correct answer.
|
|
|
|
|
You can do it one of two ways:
string[] pathParts = myPath.Split('\\');
and you'll end up with an array of strings that represent the various components.
Or, you can use the various System.Path.IO.GetXXXXX methods.
.45 ACP - because shooting twice is just silly ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
|
|
|
|