Внимание!!! Внимание!!! Внимание!!! Внимание!!! Внимание!!! Внимание!!! Внимание!!!
Никогда не используйте производные формы!!!
Могут возникнуть огромные недоразумения!
В этом примере, мы создаем главную форму, на которой будут две кнопки, каждая кнопка будет открывать дочернюю форму. Дочерние формы, практически идентичны. Создаем дочернюю форму. Что бы не создавать второй раз вторую дочернюю форму, можно создать производную форму, которая будет копировать базовую форму. Что бы изменить в производной форме какое либо свойство элемента управления, нужно в базовой форме изменить модификатор доступа c private на protected идентичного элемента. Внимание!!! Перед созданием производной формы, скомпилируйте проект!!!
Никогда не используйте производные формы!!!
Могут возникнуть огромные недоразумения!
В этом примере, мы создаем главную форму, на которой будут две кнопки, каждая кнопка будет открывать дочернюю форму. Дочерние формы, практически идентичны. Создаем дочернюю форму. Что бы не создавать второй раз вторую дочернюю форму, можно создать производную форму, которая будет копировать базовую форму. Что бы изменить в производной форме какое либо свойство элемента управления, нужно в базовой форме изменить модификатор доступа c private на protected идентичного элемента. Внимание!!! Перед созданием производной формы, скомпилируйте проект!!!
Главная форма.
Модальная форма.
Внимание!!! Перед созданием производной формы, скомпилируйте проект!!!
Производная форма. Кликните правой мышкой на нашем проекте. Add. New Item. Выберите категорию Windows Forms. Выберите шаблон Inherited Form. Введите имя.
Производная форма. Кликните правой мышкой на нашем проекте. Add. New Item. Выберите категорию Windows Forms. Выберите шаблон Inherited Form. Введите имя.
Выбираем базовую форму, которую будем наследовать.
Вот так выглядит эта форма в дизайнере.
Что бы изменить в элементах управления производной формы нужные свойства, необходимо в базовой форме изменить модификатор доступа на protected. Выделите элементы управления в базовой форме и измените модификатор доступа.
Перекомпилируйте проект. Измените значения свойств.
Counter.cs
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Threading.Tasks;
namespace
_0015 {
-
class
Counter {
-
ushort
showStart;
-
ushort
showEnd;
-
decimal
price;
-
public
Counter(
string
arg0,
string
arg1,
string
arg2) {
-
ushort
.TryParse(arg0,
out
showStart);
-
ushort
.TryParse(arg1,
out
showEnd);
-
decimal
.TryParse(arg2,
out
price);
-
}
-
public
ushort
ResultShow() {
-
return
(
ushort
)(showEnd - showStart);
-
}
-
public
decimal
Sum() {
-
return
Math.Round((
decimal
)(ResultShow() * price) , 2);
-
}
-
}
}
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Threading.Tasks;
namespace
_0015 {
-
class
Counter {
-
ushort
showStart;
-
ushort
showEnd;
-
decimal
price;
-
public
Counter(
string
arg0,
string
arg1,
string
arg2) {
-
ushort
.TryParse(arg0,
out
showStart);
-
ushort
.TryParse(arg1,
out
showEnd);
-
decimal
.TryParse(arg2,
out
price);
-
}
-
public
ushort
ResultShow() {
-
return
(
ushort
)(showEnd - showStart);
-
}
-
public
decimal
Sum() {
-
return
Math.Round((
decimal
)(ResultShow() * price) , 2);
-
}
-
}
}
Form2Electro.cs
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Threading.Tasks;
using
System.Windows.Forms;
namespace
_0015 {
-
public
partial
class
Form2Electro : Form {
-
public
Form2Electro() {
-
InitializeComponent();
-
}
-
private
void
button1_Click(
object
sender, EventArgs e) {
-
Counter C =
new
Counter(textBox1.Text, textBox2.Text, textBox3.Text);
-
textBox4.Text = C.Sum().ToString();
-
}
-
private
void
button2_Click(
object
sender, EventArgs e) {
-
foreach
(Control i
in
Controls) {
-
if
(i.GetType() ==
typeof
(TextBox)) {
-
i.Text =
string
.Empty;
-
}
-
}
-
}
-
}
}
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Threading.Tasks;
using
System.Windows.Forms;
namespace
_0015 {
-
public
partial
class
Form2Electro : Form {
-
public
Form2Electro() {
-
InitializeComponent();
-
}
-
private
void
button1_Click(
object
sender, EventArgs e) {
-
Counter C =
new
Counter(textBox1.Text, textBox2.Text, textBox3.Text);
-
textBox4.Text = C.Sum().ToString();
-
}
-
private
void
button2_Click(
object
sender, EventArgs e) {
-
foreach
(Control i
in
Controls) {
-
if
(i.GetType() ==
typeof
(TextBox)) {
-
i.Text =
string
.Empty;
-
}
-
}
-
}
-
}
}
Form3Water.cs
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Text;
using
System.Windows.Forms;
namespace
_0015 {
-
public
partial
class
Form3Water : _0015.Form2Electro {
-
public
Form3Water() {
-
InitializeComponent();
-
}
-
private
void
button1_Click(
object
sender, EventArgs e) {
-
Counter C =
new
Counter(textBox1.Text, textBox2.Text, textBox3.Text);
-
textBox4.Text = C.Sum().ToString();
-
}
-
private
void
button2_Click(
object
sender, EventArgs e) {
-
foreach
(Control i
in
Controls) {
-
if
(i.GetType() ==
typeof
(TextBox)) {
-
i.Text =
string
.Empty;
-
}
-
}
-
}
-
}
}
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Text;
using
System.Windows.Forms;
namespace
_0015 {
-
public
partial
class
Form3Water : _0015.Form2Electro {
-
public
Form3Water() {
-
InitializeComponent();
-
}
-
private
void
button1_Click(
object
sender, EventArgs e) {
-
Counter C =
new
Counter(textBox1.Text, textBox2.Text, textBox3.Text);
-
textBox4.Text = C.Sum().ToString();
-
}
-
private
void
button2_Click(
object
sender, EventArgs e) {
-
foreach
(Control i
in
Controls) {
-
if
(i.GetType() ==
typeof
(TextBox)) {
-
i.Text =
string
.Empty;
-
}
-
}
-
}
-
}
}
Form1.cs
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Threading.Tasks;
using
System.Windows.Forms;
namespace
_0015 {
-
public
partial
class
Form1 : Form {
-
public
Form1() {
-
InitializeComponent();
-
}
-
private
void
button1_Click(
object
sender, EventArgs e) {
-
new
Form2Electro().ShowDialog();
-
}
-
private
void
button2_Click(
object
sender, EventArgs e) {
-
new
Form3Water().ShowDialog();
-
}
-
}
}
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Threading.Tasks;
using
System.Windows.Forms;
namespace
_0015 {
-
public
partial
class
Form1 : Form {
-
public
Form1() {
-
InitializeComponent();
-
}
-
private
void
button1_Click(
object
sender, EventArgs e) {
-
new
Form2Electro().ShowDialog();
-
}
-
private
void
button2_Click(
object
sender, EventArgs e) {
-
new
Form3Water().ShowDialog();
-
}
-
}
}