В данном примере, пользователь вводит данные, нажимает на кнопку Расчитать. Создается кнопка Очистить. При нажатии на кнопку Очистить, поля ввода очищаются, кнопка Очистить удаляется.
Был сделан эффект плавного увеличения и уменьшения формы, когда кнопка создается и когда удаляется.
Но возникло одно досадное недоразумение. Если пользователь не закроет форму, а второй раз введет данные, нажмет кнопку Расчитать, затем кнопку Очистить, после удаления кнопки, форма дважды изменит свои размеры. Если пользователь три раза сделает вычисления, то форма трижды изменит свои размеры. В чем bug, ни как не пойму.
Был сделан эффект плавного увеличения и уменьшения формы, когда кнопка создается и когда удаляется.
Но возникло одно досадное недоразумение. Если пользователь не закроет форму, а второй раз введет данные, нажмет кнопку Расчитать, затем кнопку Очистить, после удаления кнопки, форма дважды изменит свои размеры. Если пользователь три раза сделает вычисления, то форма трижды изменит свои размеры. В чем bug, ни как не пойму.
Counter.cs
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespace_0024 {-
classCounter { -
ushortshowStart; -
ushortshowEnd; -
decimalprice; -
publicCounter(stringarg0,stringarg1,stringarg2) { -
ushort.TryParse(arg0,outshowStart); -
ushort.TryParse(arg1,outshowEnd); -
decimal.TryParse(arg2,outprice); -
} -
publicushortResultShow() { -
return(ushort)(showEnd - showStart); -
} -
publicdecimalSum() { -
returnMath.Round((decimal)(ResultShow() * price) , 2); -
} -
} }
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespace_0024 {-
classCounter { -
ushortshowStart; -
ushortshowEnd; -
decimalprice; -
publicCounter(stringarg0,stringarg1,stringarg2) { -
ushort.TryParse(arg0,outshowStart); -
ushort.TryParse(arg1,outshowEnd); -
decimal.TryParse(arg2,outprice); -
} -
publicushortResultShow() { -
return(ushort)(showEnd - showStart); -
} -
publicdecimalSum() { -
returnMath.Round((decimal)(ResultShow() * price) , 2); -
} -
} }
Form1.cs
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespace_0024 {-
publicpartialclassForm1 : Form { -
//создаем кнопку Очистить -
Button Clear =newButton(); -
publicForm1() { -
InitializeComponent(); -
} -
privatevoidbutton1_Click(objectsender, EventArgs e) { -
Counter C =newCounter(textBox1.Text, textBox2.Text, textBox3.Text); -
textBox4.Text = C.Sum().ToString(); -
//увеличиваем размеры формы -
intwidth = 432; -
while(width < 562) { -
//итерация -
width += 1; -
this.ClientSize =newSystem.Drawing.Size(width, 274); -
//остановка потока на 0,01секунды -
System.Threading.Thread.Sleep(10); -
//прекращаем увеличивать размеры формы -
if(width == 562) { -
break; -
} -
} -
//задаем параметры кнопки Очистить -
Clear.Font =newSystem.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); -
Clear.Location =newSystem.Drawing.Point(437, 37); -
//Clear.Name = "button2"; -
Clear.Size =newSystem.Drawing.Size(100, 30); -
Clear.Text ="Очистить"; -
Clear.UseVisualStyleBackColor =true; -
//добавляем кнопку Очистить в коллекцию элементов управления формы -
this.Controls.Add(Clear); -
//добавляем обработчик события в список обработчиков событий -
Clear.Click +=newEventHandler(Clear_Click); -
} -
//обработчик события для кнопки Очистить -
protectedvoidClear_Click(objectsender, EventArgs e) { -
//кнопка Очистить очищает все текстовые поля -
foreach(Control iinControls) { -
if(i.GetType() ==typeof(TextBox)) { -
i.Text =string.Empty; -
} -
} -
//удаляем кнопку Очистить из коллекции элементов управления формы -
this.Controls.Remove(Clear); -
//уменьшаем размеры формы -
intwidth = 562; -
while(width > 432) { -
//итерация -
width -= 1; -
this.ClientSize =newSystem.Drawing.Size(width, 274); -
//остановка потока на 0,01секунды -
System.Threading.Thread.Sleep(10); -
//прекращаем уменьшать размеры формы -
if(width == 432) { -
break; -
} -
} -
} -
} }
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespace_0024 {-
publicpartialclassForm1 : Form { -
//создаем кнопку Очистить -
Button Clear =newButton(); -
publicForm1() { -
InitializeComponent(); -
} -
privatevoidbutton1_Click(objectsender, EventArgs e) { -
Counter C =newCounter(textBox1.Text, textBox2.Text, textBox3.Text); -
textBox4.Text = C.Sum().ToString(); -
//увеличиваем размеры формы -
intwidth = 432; -
while(width < 562) { -
//итерация -
width += 1; -
this.ClientSize =newSystem.Drawing.Size(width, 274); -
//остановка потока на 0,01секунды -
System.Threading.Thread.Sleep(10); -
//прекращаем увеличивать размеры формы -
if(width == 562) { -
break; -
} -
} -
//задаем параметры кнопки Очистить -
Clear.Font =newSystem.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); -
Clear.Location =newSystem.Drawing.Point(437, 37); -
//Clear.Name = "button2"; -
Clear.Size =newSystem.Drawing.Size(100, 30); -
Clear.Text ="Очистить"; -
Clear.UseVisualStyleBackColor =true; -
//добавляем кнопку Очистить в коллекцию элементов управления формы -
this.Controls.Add(Clear); -
//добавляем обработчик события в список обработчиков событий -
Clear.Click +=newEventHandler(Clear_Click); -
} -
//обработчик события для кнопки Очистить -
protectedvoidClear_Click(objectsender, EventArgs e) { -
//кнопка Очистить очищает все текстовые поля -
foreach(Control iinControls) { -
if(i.GetType() ==typeof(TextBox)) { -
i.Text =string.Empty; -
} -
} -
//удаляем кнопку Очистить из коллекции элементов управления формы -
this.Controls.Remove(Clear); -
//уменьшаем размеры формы -
intwidth = 562; -
while(width > 432) { -
//итерация -
width -= 1; -
this.ClientSize =newSystem.Drawing.Size(width, 274); -
//остановка потока на 0,01секунды -
System.Threading.Thread.Sleep(10); -
//прекращаем уменьшать размеры формы -
if(width == 432) { -
break; -
} -
} -
} -
} }