C++ Windows Forms L06 - Utlitity and Strings

677 views
536 views

Published on

C++ Windows Forms L06 - Utlitity and Strings of C++ Windows Forms Light Course

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
677
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
62
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

C++ Windows Forms L06 - Utlitity and Strings

  1. 1. C++.NET Windows Forms Course L06-Utility Mohammad Shaker mohammadshakergtr.wordpress.com C++.NET Windows Forms Course @ZGTRShaker
  2. 2. How to work with OOP in .NET
  3. 3. How to work with OOP in .NET • Structure of Form class • Adding variables – Public – Private • Adding member functions – Procedural • Adding classes by “ref” • Passing parameters – %,^
  4. 4. .NET
  5. 5. .NET
  6. 6. Debugging
  7. 7. Debugging – Break Point
  8. 8. Debugging
  9. 9. Debugging
  10. 10. Debugging
  11. 11. Debugging
  12. 12. references declarations definitions
  13. 13. Searching in msdn
  14. 14. DateTime class
  15. 15. DateTime
  16. 16. DateTime private: System::Void button1_Click(System::Object^ System::EventArgs^ e) { DateTime D; textBox1->Text= D.Day.ToString(); }; sender, 1 private: System::Void button1_Click(System::Object^ System::EventArgs^ e) { DateTime D; D.Now; textBox1->Text= D.Day.ToString(); }; 1 sender,
  17. 17. DateTime private: System::Void button1_Click(System::Object^ System::EventArgs^ e) { DateTime D; D.Now; textBox1->Text= D.Now.Day.ToString(); }; 9 sender,
  18. 18. DateTime Constructor
  19. 19. DateTime Methods
  20. 20. DateTime
  21. 21. DateTime
  22. 22. DateTime
  23. 23. DateTime
  24. 24. DateTime • Considering today is 22/10/2010, the output will be private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ { // Calculate what day of the week is 36 days from this instant DateTime ^today= DateTime::Now; TimeSpan duration(36, 0, 0, 0); DateTime ^answer= today->Add(duration); textBox1->Text= answer->ToString(); } 11/27/2010 1:49:12 AM e)
  25. 25. DateTime DateTime date1= gcnew DateTime::Now; DateTime date2= gcnew DateTime::UtcNow; DateTime date3= gcnew DateTime::Today; Utc: Coordinated Universal Time private: System::Void button1_Click(System::Object^ System::EventArgs^ e) { DateTime ^Day= gcnew DateTime(2010, 10, 6); textBox1->Text= Day->ToString(); } 10/6/2010 12:00:00 AM sender,
  26. 26. DateTime private: System::Void button1_Click(System::Object^ System::EventArgs^ e) { DateTime ^Day= gcnew DateTime(2010, 10, 6); textBox1->Text= Day->ToLongTimeString(); } sender, 12:00:00 AM private: System::Void button1_Click(System::Object^ System::EventArgs^ e) { DateTime ^Day= gcnew DateTime(2010, 10, 6); textBox1->Text= Day->ToLongDateString(); } Wednesday, October 06, 2010 sender,
  27. 27. DateTime private: System::Void button1_Click(System::Object^ System::EventArgs^ e) { DateTime ^Day= gcnew DateTime(2010, 10, 6); textBox1->Text= Day->ToShortDateString(); } sender, 10/6/2010 private: System::Void button1_Click(System::Object^ System::EventArgs^ e) { DateTime ^Day= gcnew DateTime(2010, 10, 6); textBox1->Text= Day->ToShortTimeString(); } 12:00 AM sender,
  28. 28. DateTime private: System::Void button1_Click(System::Object^ System::EventArgs^ e) { DateTime ^Day= gcnew DateTime(2010, 10, 6); textBox1->Text= Day >ToString(); } sender, 10/6/2010 12:00:00 AM private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { DateTime ^Day= gcnew DateTime(2010, 10, 6); textBox1->Text= Day->ToLocalTime().ToString(); } 10/6/2010 3:00:00 AM
  29. 29. DateTime int window= 10; int freq= 60 * 60 * 2; // 2 hours; DateTime d1= DateTime.Now; DateTime DateTime DateTime DateTime d2= d3= d4= d5= d1->AddSeconds(2 * window); d1->AddSeconds(-2 * window); d1->AddSeconds(window / 2); d1->AddSeconds(-window / 2); DateTime DateTime DateTime DateTime d6= d7= d8= d9= (d1.AddHours(2))->AddSeconds(2 * window); (d1.AddHours(2))->AddSeconds(-2 * window); (d1.AddHours(2))->AddSeconds(window / 2); (d1.AddHours(2))->AddSeconds(-window / 2); Console.WriteLine("d1 Console.WriteLine("d1 Console.WriteLine("d1 Console.WriteLine("d1 Console.WriteLine("d1 ({0}) ({0}) ({0}) ({0}) ({0}) ~= ~= ~= ~= ~= d1 d2 d3 d4 d5 ({1}): ({1}): ({1}): ({1}): ({1}): {2}“, {2}", {2}", {2}", {2}", d1, d1, d1, d1, d1, d1, d2, d3, d4, d5, RoughlyEquals(d1, RoughlyEquals(d1, RoughlyEquals(d1, RoughlyEquals(d1, RoughlyEquals(d1, d1, d2, d3, d4, d5, window, window, window, window, window, freq)); freq)); freq)); freq)); freq)); Console.WriteLine("d1 Console.WriteLine("d1 Console.WriteLine("d1 Console.WriteLine("d1 ({0}) ({0}) ({0}) ({0}) ~= ~= ~= ~= d6 d7 d8 d9 ({1}): ({1}): ({1}): ({1}): {2}", {2}", {2}", {2}", d1, d1, d1, d1, d6, d7, d8, d9, RoughlyEquals(d1, RoughlyEquals(d1, RoughlyEquals(d1, RoughlyEquals(d1, d6, d7, d8, d9, window, window, window, window, freq)); freq)); freq)); freq));
  30. 30. Properties
  31. 31. Properties • A compromise between a function and a variable! • See, the following, how awesome! private: int MyInt; public: // property block property int intProperty { int get() { return MyInt; } void set(int value) { MyInt= value; } }
  32. 32. Properties The property keyword introduces the declaration of a property and can appear in a class, interface, or value type. A property can have a getter function (read only), a setter function (write only), or both (read-write). public: int MyInt; // property block property int intProperty { int get() { return MyInt; } void set(int value) { MyInt= value; } }
  33. 33. Properties • So, how to use it? Like the following … property int intProperty { int get() { return MyInt; } void set(int value) { MyInt= value; } } private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { textBox1->Text= intProperty.ToString(); }
  34. 34. Properties
  35. 35. Properties • So, how to use it? Like the following … property int intProperty { int get() { return MyInt; } void set(int value) { MyInt= value; } } private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { intProperty= 5; textBox1->Text= intProperty.ToString(); }
  36. 36. Properties
  37. 37. Properties int MyInt; // property block property int intProperty { int get() { return MyInt; } void set(int value) { MyInt= value; } } private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { intProperty= 5; textBox1->Text= intProperty.ToString(); intProperty= 14; textBox1->Text += " " + intProperty.ToString(); }
  38. 38. Properties
  39. 39. Properties int MyInt; // property block property int intProperty { int get() { MessageBox::Show("You are lucky to know the property before others:P:D"); return MyInt; } void set(int value) { MyInt= value; } } #pragma endregion private: System::Void button1_Click(System::Object^ System::EventArgs^ e) { intProperty= 5; textBox1->Text= intProperty.ToString(); } sender,
  40. 40. Properties
  41. 41. Properties int MyInt; // property block property int intProperty { int get() { return MyInt; Note where it is! MessageBox::Show("You are lucky to know the property before others:P:D"); } void set(int value) { MyInt= value; } } #pragma endregion private: System::Void button1_Click(System::Object^ System::EventArgs^ e) { intProperty= 5; textBox1->Text= intProperty.ToString(); } sender,
  42. 42. Properties No message box
  43. 43. stringint Conversion
  44. 44. stringint Conversion • NewLine: – Environment::NewLine; • Converting from string to int: – Int32::Parse(textBox1->Text); – Int32::TryParse(textBox1->Text);
  45. 45. stringint Conversion • Converting from int to string: – Exp #1: • int x; • textBox1->Text= x.ToString(); – Exp #2: • int ^; x • textBox1->Text= x->ToString(); – Exp #3: • int ^; x • String ^S= x->ToString();
  46. 46. stringint Conversion private: System::Void button1_Click_1(System::Object^ System::EventArgs^ e) { int i= 3; i= int::Parse(textBox1->Text); } What happens if we have “435345” in textBox1? What happens if we have “wewe” in textBox1? What happens if we have “213s” in textBox1? What happens if we have “” in textBox1? sender,
  47. 47. stringint Conversion private: System::Void button1_Click_1(System::Object^ System::EventArgs^ e) { int i= 3; i= int::TryParse(textBox1->Text, i ; } What happens if we have “435345” in textBox1? What happens if we have “wewe” in textBox1? What happens if we have “213s” in textBox1? What happens if we have “” in textBox1? sender,
  48. 48. Files! The Concept
  49. 49. Working with Files • using! using namespace System::IO;
  50. 50. using namespace System::IO; void FileManipulate::PrintTextFile () { String ^FilePath = "D:HashFile.Txt" ; FileStream ^MyFile = gcnew FileStream(FilePath, FileMode::Open); StreamReader ^SR = gcnew StreamReader(MyFile); String ^str="" ; // Extracting words while(SR->Peek() > -1) { str = SR->ReadLine(); MyForm->textBox1->Text += str + Environment::NewLine ; } MyFile->Close(); }
  51. 51. using namespace System::IO; void FileManipulate::PrintTextFile () { String ^FilePath = "D:HashFile.Txt" ; FileStream ^MyFile = gcnew FileStream ; StreamReader ^SR = gcnew StreamReader(MyFile); String ^str="" ; // Extracting words while(SR->Peek() > -1) { str = SR->ReadLine(); MyForm->textBox1->Text += str + Environment::NewLine ; } MyFile->Close(); } Compiler error FileStream ^MyFile = gcnew FileStream(FilePath, FileMode::Open);
  52. 52. Working with Files private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) { SaveFileDialog ^Dialog = gcnew SaveFileDialog(); FileStream ^MyFC ; String ^FilePath = "" ; if (Dialog->ShowDialog() == System::Windows::Forms::DialogResult::OK) { FilePath = Dialog->FileName ; }
  53. 53. Working with Files MyFC = File::Create(FilePath) ; MyFC->Close(); MyFC = File::Open(FilePath ,FileMode::Append ); StreamWriter ^SW = gcnew StreamWriter(MyFC); SW->WriteLine("I AM ZGTR"); SW->WriteLine("I AM ALWAYS ZGTR"); SW->Close(); MyFC->Close(); MyFC = File::Open(FilePath ,FileMode::Open ); StreamReader ^SR = gcnew StreamReader(MyFC); String ^str="" ; // Extracting words while(SR->Peek() > -1) { str = SR->ReadLine(); this->textBox1->Text += str + Environment::NewLine ; } MyFC->Close(); }
  54. 54. Working with Files MyFC = File::Create(FilePath) ; MyFC->Close(); MyFC = File::Open(FilePath ,FileMode::Append ); StreamWriter ^SW = gcnew StreamWriter(MyFC); while (textBox1->Text!= “000”) { SW-> WriteLine(textBox2->Text) ;} SW->Close(); MyFC->Close(); MyFC = File::Open(FilePath ,FileMode::Open ); StreamReader ^SR = gcnew StreamReader(MyFC); String ^str="" ; // Extracting words while(SR->Peek() > -1) { str = SR->ReadLine(); this->textBox1->Text += str + Environment::NewLine ; } MyFC->Close(); }
  55. 55. Working with Files
  56. 56. Working with Files Live test
  57. 57. Use the console to trackdebug values! Do not use messagebox for tracking!
  58. 58. Change between Console and Windows Form • In the project properties for all configurations (Project | Properties, choose Configuration 'All Configurations', locate Config Properties -> Linker -> System), change the SubSystem from Console to Windows.
  59. 59. Change between Console and Windows Form
  60. 60. Change between Console and Windows Form
  61. 61. Change between Console and Windows Form
  62. 62. Project output type example • Let’s have the following design
  63. 63. Project output type example • And the following code-behind
  64. 64. Project output type example • After setting the project output to “console”, Run
  65. 65. Project output type example • Now, press the button multiple times and there you go!
  66. 66. Creating You Own Windows Forms Control (C++) http://msdn.microsoft.com/en-us/library/vstudio/ms235628(v=vs.100).aspx
  67. 67. Peak on Exception Handling try, catch, throw and finally
  68. 68. Peak on Exception Handling • Test it live! private: System::Void panel1_MouseClick(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) { try { if (textBox1->text == “Hi”) { MessageBox::Show(“It’s time for Exceptions! "); } } catch (System::FormatException ^e) { MessageBox::Show("You Should Enter a String in textBox first "); } }
  69. 69. C++.NET Windows Forms Course Strings Mohammad Shaker mohammadshakergtr.wordpress.com C++.NET Windows Forms Course @ZGTRShaker
  70. 70. Welcome!
  71. 71. Strings in Action
  72. 72. Strings in Action -> and ::
  73. 73. Strings in Action • Let’s have the following form …
  74. 74. Strings in Action • What happens? private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { int i = 3; i++; String ^Str = textBox1->Text; String ^TempStr =String::Format("{0}{1}{2}" , Str , "What?" , i.ToString()); textBox2->Text += TempStr; }
  75. 75. Strings in Action
  76. 76. Strings in Action private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { int i = 3; i++; String ^Str = textBox1->Text; String ^TempStr = String::Format("{0}{1} Go! {2}" , Str , " What? " , i.ToString()); textBox2->Text += TempStr; }
  77. 77. Strings in Action
  78. 78. Strings in Action • Is it okay? private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { int i = 3; i++; String ^Str = textBox1->Text; String ^TempStr = String::Format("{0}{1} Go! {2}" , Str , " What? " , i); textBox2->Text += TempStr; }
  79. 79. Strings in Action
  80. 80. String Operations by Category
  81. 81. Strings in Action • Comparing Strings (int): – Compare : • returns an integer that indicates the relationship of one string to a second string in the sort order.
  82. 82. Strings in Action Value Condition Less than zero strA is less than strB. Zero strA equals strB. Greater than zero strA is greater than strB.
  83. 83. Strings in Action private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { String ^str1 = "I Wanna go!"; String ^str2 = "I decided not to go!"; int i = String::Compare(str1,str2); textBox1->Text = i.ToString(); }
  84. 84. Strings in Action • Testing Strings for Equality (bool): – You call the Equals method to determine whether two strings are equal.
  85. 85. Strings in Action private: System::Void button1_Click(System::Object^ System::EventArgs^ e) { String ^str1 = "I Wanna go!"; String ^str2 = "I decided not to go!"; bool b= String::Equals(str1,str2); textBox1->Text = b.ToString(); } sender,
  86. 86. Strings in Action private: System::Void button1_Click(System::Object^ System::EventArgs^ e) { String ^str1 = "I Wanna go!"; String ^str2 = "I Wanna go!"; bool b = String::Equals(str1,str2); textBox1->Text = b.ToString(); } true sender,
  87. 87. Strings in Action private: System::Void button1_Click(System::Object^ System::EventArgs^ e) { String ^str1 = "I Wanna go!"; String ^str2 = "I Wanna go! "; bool b = String::Equals(str1,str2); textBox1->Text = b.ToString(); } false sender,
  88. 88. Strings in Action • Finding Characters in a String : – The String class includes two kinds of search methods: • Methods that return a “ bool” value to indicate whether a particular substring is present in a string instance. These include the Contains, EndsWith, and StartsWith methods. • Methods that indicate the starting position of a substring in a string instance “int”. These include the IndexOf,IndexOfAny, LastIndexOf, and LastIndexOfAny methods.
  89. 89. Strings in Action • String::Contains Method (bool) – Returns a value indicating whether the specified String object occurs within this string.
  90. 90. Strings in Action { String^ s1 = "The brown fox jumps over the lazy dog"; String^ s2 = "fox"; bool b; b = s1->Contains( s2 ); Console::WriteLine( "Is the string, s2, in the string, s1?: {0}", b ); } Is string , s2, in string, s1? True
  91. 91. Strings in Action • String::IndexOf Method (int) – Reports the index of the first occurrence of one or more characters, or the first occurrence of a string, within this string. – This member is overloaded. For complete information about this member, including syntax, usage, and examples, click a name in the overload list.
  92. 92. Name IndexOf(Char) IndexOf(String) IndexOf(Char, Int32) Description Reports the index of the first occurrence of the specified Unicode character in this string. Reports the index of the first occurrence of the specified string in this instance. Reports the index of the first occurrence of the specified Unicode character in this string. The search starts at a specified character position. IndexOf(String, Int32) Reports the index of the first occurrence of the specified string in this instance. The search starts at a specified character position. IndexOf(String, Reports the index of the first occurrence of the specified string in the StringComparison) current Stringobject. A parameter specifies the type of search to use for the specified string. IndexOf(Char, Int32, Reports the index of the first occurrence of the specified character in this Int32) instance. The search starts at a specified character position and examines a specified number of character positions. IndexOf(String, Int32, Reports the index of the first occurrence of the specified string in this instance. Int32) The search starts at a specified character position and examines a specified number of character positions. IndexOf(String, Int32, Reports the index of the first occurrence of the specified string in the StringComparison) current Stringobject. Parameters specify the starting search position in the current string and the type of search to use for the specified string. IndexOf(String, Int32, Reports the index of the first occurrence of the specified string in the Int32, StringComparison) current Stringobject. Parameters specify the starting search position in the current string, the number of characters in the current string to search, and the type of search to use for the specified string.
  93. 93. int main(array<System::String ^> ^args) { Console::WriteLine(L"Hello World"); // Create a Unicode String with 5 Greek Alpha characters String^ szGreekAlpha = gcnew String( L'x0319',5 ); // Create a Unicode String with a Greek Omega character wchar_t charArray5[3] = {L'x03A9',L'x03A9',L'x03A9'}; String^ szGreekOmega = gcnew String( charArray5,2,1 ); String^ szGreekLetters = String::Concat( szGreekOmega, szGreekAlpha, szGreekOmega>Clone() ); // Examine the result Console::WriteLine( szGreekLetters ); // The first index of Alpha int ialpha = szGreekLetters->IndexOf( L'x0319' ); // The last index of Omega int iomega = szGreekLetters->LastIndexOf( L'x03A9' ); Console::WriteLine( String::Concat( "The Greek letter Alpha first appears at index ", Convert::ToString( ialpha ) ) ); Console::WriteLine( String::Concat( " and Omega last appears at index ", Convert::ToString( iomega ), " in this String." ) ); return 0; }
  94. 94. Strings in Action Hello World Ω?????Ω The Greek letter Alpha first appears at index 1 and Omega last appears at index 6 in this String. Press any key to continue . . .
  95. 95. Strings in Action–Trim() method • String::Trim Method – Removes all leading and trailing white-space characters from the current String object.
  96. 96. int main() { String^ animal1 = "fox"; String^ animal2 = "dog"; String^ strTarget = String::Format( "The {0} jumped over the {1}.", animal1, animal2 ); Console::WriteLine ( "The original string is:{0}{1}{0}", Environment::NewLine, strTarget ); Console::Write ( "Enter an adjective (or group of adjectives) to describe the {0}: ==> ", animal1 ); String^ adj1 = Console::ReadLine(); Console::Write ( "Enter an adjective (or group of adjectives) to describe the {0}: ==> ", animal2 ); String^ adj2 = Console::ReadLine(); adj1 = String::Concat( adj1->Trim(), " " ); adj2 = String::Concat( adj2->Trim(), " " ); strTarget = strTarget->Insert( strTarget->IndexOf( animal1 ), adj1 ); strTarget = strTarget->Insert( strTarget->IndexOf( animal2 ), adj2 ); Console::WriteLine ( " {0}The final string is: {0} {1}", Environment::NewLine, strTarget ); }
  97. 97. Strings in Action The original string is: The fox jumped over the dog. Enter an adjective (or group of adjectives) to describe the fox: ==> bold Enter an adjective (or group of adjectives) to describe the dog: ==> lazy The final string is: The bold fox jumped over the lazy dog.
  98. 98. Strings in Action private: System::Void button1_Click(System::Object^ System::EventArgs^ e) { String ^str1 = "I Wanna go!"; String ^str2 = "I DeciDEd not to go!"; str2 = str2->ToLower(); textBox1->Text = str2; } sender,
  99. 99. Strings in Action private: System::Void button1_Click(System::Object^ System::EventArgs^ e) { String ^str1 = "I Wanna go!"; String ^str2 = "I decided not to go! "; str2 = (str2->ToLower())->Trim() ; textBox1->Text = str2+str1; } sender,
  100. 100. Strings in Action private: System::Void button1_Click(System::Object^ System::EventArgs^ e) { String ^str1 = "I Wanna go!"; String ^str2 = “ I DeCided not to go! "; str2 = (str2->ToLower())->Trim() ; textBox1->Text = str2; } sender,
  101. 101. Strings in Action • String::Copy Method (String to String) – Creates a new instance of String with the same value as a specified String. // Sample for String::Copy() using namespace System; int main() { String^ str1 = "abc"; String^ str2 = "xyz"; Console::WriteLine( "1) str1 = '{0}'", Console::WriteLine( "2) str2 = '{0}'", Console::WriteLine( "Copy..." ); str2 = String::Copy( str1 ); Console::WriteLine( "3) str1 = '{0}'", Console::WriteLine( "4) str2 = '{0}'", } 1) str1 2) str2 Copy... 3) str1 4) str2 = 'abc' = 'xyz' = 'abc' = 'abc' str1 ); str2 ); str1 ); str2 );
  102. 102. Strings in Action • String::CopyTo Method (String) – Copies a specified number of characters from a specified position in this instance to a specified position in an array of Unicode characters.
  103. 103. Strings in Action • Parameters – sourceIndexType: System::Int32 The index of the first character in this instance to copy. – destinationType: array<System::Char> An array of Unicode characters to which characters in this instance are copied. – destinationIndexType: System::Int32 The index in destination at which the copy operation begins. – countType: System::Int32 The number of characters in this instance to copy to destination.
  104. 104. using namespace System; int main() { // Embed an array of characters in a string String^ strSource = "changed"; array <Char> ^destination = {'T','h','e',' ','i','n','i','t','i','a','l',' ','a','r','r','a','y'}; // Print the char array Console::WriteLine( destination ); // Embed the source string in the destination string strSource->CopyTo( 0, destination, 4, strSource->Length ); // Print the resulting array Console::WriteLine( destination ); strSource = "A different string"; // Embed only a section of the source string in the destination strSource->CopyTo( 2, destination, 3, 9 ); // Print the resulting array Console::WriteLine( destination ); }
  105. 105. Strings in Action The initial array The changed array Thedifferentarray Press any key to continue . . .
  106. 106. Strings in Action • String::Replace Method (String , String) – Returns a new string in which all occurrences of a specified string in the current instance are replaced with another specified string.
  107. 107. Strings in Action using namespace System; int main() { String^ errString = "This docment uses 3 other docments to docment the docmentation"; Console::WriteLine( "The original string is:n'{0}'n", errString ); // Correct the spelling of S"document". String^ correctString = errString->Replace( "docment", "document" ); Console::WriteLine( "After correcting the string, the result is:n'{0}'", correctString ); } This code example produces the following output: The original string is: 'This docment uses 3 other docments to docment the docmentation' After correcting the string, the result is: 'This document uses 3 other documents to document the documentation'
  108. 108. SubString()
  109. 109. SubString() private: System::Void button1_Click(System::Object^ System::EventArgs^ e) { String ^str1 = "I Wanna go!"; String ^str2 = "I decided not to go! "; String ^TempStr = ""; TempStr = str2->Substring(3); textBox1->Text = TempStr; } sender,
  110. 110. SubString() private: System::Void button1_Click(System::Object^ System::EventArgs^ e) { String ^str1 = "I Wanna go!"; String ^str2 = "I decided not to go! "; String ^TempStr = ""; TempStr = str2->Substring(3,3); textBox1->Text = TempStr; } sender,
  111. 111. That’s it for today!

×