Учим C# Windows Forms зная Basic Цель данной темы: разместить в интернет программы по каким возможно быстро выучить C# зная basic Никому никогда ничего не рекомендую и всегда пишу только про себя Предыдущая тема: Учим C# зная Basic Программы созданы мной на основе моей главной программы где запрограммирован мой алгоритм в нескольких вариантах и теперь программирую на C# сразу без перевода из basic ? Почему C# & basic? Потому что компилируемые и есть онлайн компиляторы и компилятор C# включен в Windows 7 Framework Программы проверены: работают и каждый может проверить и лично я компилирую и стартую через простейший bat программа решающая квадратное уравнение результаты вычисляются при каждом нажатиии результаты округляются до 2-х знаков после запятойи нажав спец кнопку данные данные сохраняются на диски возможно сохранять настроенную конфигурацию //winquall.cs using System; using System.Windows.Forms; using System.IO; class winQUAll : Form { winQUAll() { Text= "winQUAll Например A=6 B=7 C=2"; BackColor = System.Drawing.Color.Green; ForeColor = System.Drawing.Color.White; ResizeRedraw = true; Width = 400; Height = 250; { var buttons = new Button(); buttons.Text= "SAVE"; buttons.Dock = DockStyle.Top; var zc = -7; var labelc = new Label(); var buttonc = new Button(); buttonc.Text= "C+3"; buttonc.Dock = DockStyle.Bottom; var zb = 12; var labelb = new Label(); var buttonb = new Button(); buttonb.Text= "B-1"; buttonb.Dock = DockStyle.Bottom; var za = 2; var labela = new Label(); var buttona = new Button(); buttona.Text= "A+1"; buttona.Dock = DockStyle.Bottom; var labelx = new Label(); var d = (zb * zb - 4 * za * zc); double x1 = (-zb + Math.Sqrt(d)) / (2 * za); double x2 = (-zb - Math.Sqrt(d)) / (2 * za); var labeld = new Label(); labeld.Text= "d= " + d +" X1= " + x1 + " X2= " + x2 + " "; labeld.Dock = DockStyle.Top; x1 = (Math.Truncate(x1 * 100))/100; x2 = (Math.Truncate(x2 * 100))/100; //labeld.Location = new System.Drawing.Point(80, 15); labelx.Text= "X1=" + x1 + " X2=" + x2 + " "; labelx.Location = new System.Drawing.Point(125, 125); Controls.Add(labeld); Controls.Add(labelx); labelc.Text= "C=" + zc + "....."; labelc.Location = new System.Drawing.Point(20, 100); Controls.Add(labelc); buttonc.Click += delegate { zc = zc+3; d = (zb * zb - 4 * za * zc); x1 = (-zb + Math.Sqrt(d)) / (2 * za); x2 = (-zb - Math.Sqrt(d)) / (2 * za); labeld.Text= "d= " + d +" X1= " + x1 + " X2= " + x2 + " "; labeld.Dock = DockStyle.Top; x1 = (Math.Truncate(x1 * 100))/100; x2 = (Math.Truncate(x2 * 100))/100; //labeld.Location = new System.Drawing.Point(80, 15); labelx.Text= "X1=" + x1 + " X2=" + x2 + " "; labelx.Location = new System.Drawing.Point(125, 125); labelc.Text= "C=" + zc + " ..."; labelc.Location = new System.Drawing.Point(20, 100); }; Controls.Add(buttonc); Controls.Add(labeld); Controls.Add(labelx); labelb.Text= "B=" + zb + "....."; labelb.Location = new System.Drawing.Point(50, 80); Controls.Add(labelb); buttonb.Click += delegate { zb--; d = (zb * zb - 4 * za * zc); x1 = (-zb + Math.Sqrt(d)) / (2 * za); x2 = (-zb - Math.Sqrt(d)) / (2 * za); labeld.Text= "d= " + d +" X1= " + x1 + " X2= " + x2 + " "; labeld.Dock = DockStyle.Top; x1 = (Math.Truncate(x1 * 100))/100; x2 = (Math.Truncate(x2 * 100))/100; //labeld.Location = new System.Drawing.Point(80, 15); labelx.Text= "X1=" + x1 + " X2=" + x2 + " "; labelx.Location = new System.Drawing.Point(125, 125); labelb.Text= "B=" + zb + " ..."; labelb.Location = new System.Drawing.Point(50, 80); }; Controls.Add(buttonb); Controls.Add(labeld); Controls.Add(labelx); labela.Text= "A=" + za + "....."; labela.Location = new System.Drawing.Point(80, 60); Controls.Add(labela); buttona.Click += delegate { za++; d = (zb * zb - 4 * za * zc); x1 = (-zb + Math.Sqrt(d)) / (2 * za); x2 = (-zb - Math.Sqrt(d)) / (2 * za); labeld.Text= "d= " + d +" X1= " + x1 + " X2= " + x2 + " "; labeld.Dock = DockStyle.Top; x1 = (Math.Truncate(x1 * 100))/100; x2 = (Math.Truncate(x2 * 100))/100; //labeld.Location = new System.Drawing.Point(80, 15); labelx.Text= "X1=" + x1 + " X2=" + x2 + " "; labelx.Location = new System.Drawing.Point(125, 125); labela.Text= "A=" + za + " ..."; labela.Location = new System.Drawing.Point(80, 60); }; Controls.Add(buttons); buttons.Click += delegate { var outFile = new StreamWriter("dan.txt"); outFile.WriteLine(za); outFile.WriteLine(zb); outFile.WriteLine(zc); outFile.WriteLine(d); outFile.WriteLine(x1); outFile.WriteLine(x2); outFile.Close(); }; Controls.Add(buttona); Controls.Add(labeld); Controls.Add(labelx); }; } static void Main() { Application.Run(new winQUAll()); } } 1cs=1exe и далее испытываю движки и окна внутри окна квадратное уравнение и ввод значений в поля с предварительно заполненными полями возможно без нового окна для сообщения исследую как использовать данные при нажатии кнопок //poleZAP.cs using System; using System.Windows.Forms; namespace poleZAP { public class Program { static void Main() { Application.Run(new poleZAP()); } } class poleZAP : Form { TextBox textBoxA; TextBox textBoxB; TextBox textBoxC; Button buttonD; public poleZAP() { textBoxA=new TextBox(); textBoxA.Text = "6"; textBoxB=new TextBox(); textBoxB.Text = "7"; textBoxC=new TextBox(); textBoxC.Text = "2"; textBoxA.Location = new System.Drawing.Point(150, 50); textBoxB.Location = new System.Drawing.Point(100, 100); textBoxC.Location = new System.Drawing.Point(50, 150); this.Controls.Add(textBoxA); this.Controls.Add(textBoxB); this.Controls.Add(textBoxC); var labelq = new Label(); labelq.Text = "Input A= 6 & B= 7 & C= 2"; labelq.Dock = DockStyle.Top; Controls.Add(labelq); var labelA = new Label(); labelA.Text = "A= "; labelA.Location = new System.Drawing.Point(130, 52); Controls.Add(labelA); var labelB = new Label(); labelB.Text = "B= "; labelB.Location = new System.Drawing.Point(80, 102); Controls.Add(labelB); var labelC = new Label(); labelC.Text = "C= "; labelC.Location = new System.Drawing.Point(30, 152); Controls.Add(labelC); buttonD = new Button(); buttonD.Location = new System.Drawing.Point(100, 200); buttonD.Text = "D= x1= x2="; buttonD.Click+=buttonD_Click; Controls.Add(buttonD); } private void buttonD_Click(object sender, EventArgs e) { int za = Convert.ToInt32(textBoxA.Text); int zb = Convert.ToInt32(textBoxB.Text); int zc = Convert.ToInt32(textBoxC.Text); double d = (zb * zb - 4 * za * zc); double x1 = (-zb + Math.Sqrt(d)) / (2 * za); double x2 = (-zb - Math.Sqrt(d)) / (2 * za); string dd = (d.ToString()); string xx1 = (x1.ToString()); string xx2 = (x2.ToString()); string m = "D= " + dd + " x1= " + xx1 + " x2= " + xx2; { MessageBox.Show(m); } } } } и заодно стиль оформления удобный для форумов и для распечатки Приложение считывает из окон заданные или назначенные значения и создаёт расчёты и оформление используя данные данные и далее планируется графика в форме //SUMTAB.cs using System; using System.Windows.Forms; namespace SUMTAB { public class Program { static void Main() { Application.Run(new SUMTAB()); } } class SUMTAB : Form { TextBox textBoxD; TextBox textBoxA; Button buttonV; public SUMTAB() { var labelD = new Label(); labelD.Text = "D СТРОК"; labelD.Location = new System.Drawing.Point(45, 28); Controls.Add(labelD); textBoxD=new TextBox(); textBoxD.Text = "3"; textBoxD.Location = new System.Drawing.Point(45, 50); this.Controls.Add(textBoxD); var labelA = new Label(); labelA.Text = "A СТОЛБЦОВ"; labelA.Location = new System.Drawing.Point(45, 78); Controls.Add(labelA); textBoxA=new TextBox(); textBoxA.Text = "4"; textBoxA.Location = new System.Drawing.Point(45, 100); this.Controls.Add(textBoxA); buttonV = new Button(); buttonV.Location = new System.Drawing.Point(45, 200); buttonV.Text = "SUMTAB"; buttonV.Click+=buttonV_Click; Controls.Add(buttonV); } private void buttonV_Click(object sender, EventArgs e) { int dd = int.Parse(textBoxD.Text); int aa = int.Parse(textBoxA.Text); for (int i = 1; i <= dd; i++) { string s= ""; for (int j = 1; j <= aa; j++) s = s+" "+(i+j).ToString(); var labelI = new Label(); labelI.Text = s; labelI.Location = new System.Drawing.Point(145, 25+25*i); Controls.Add(labelI); } } } } Далее исследую другие Windows окна и формы соблюдающие принцип 1cs=1exe чтоб компилировались без сред Сборники тысяч программ http://rosettacode.org/wiki/Category:C_sharp http://rosettacode.org/wiki/Category:QB64 Никому никогда ничего не рекомендую и всегда пишу только про себя