Вопрос про Windows Control Library и UserControl
Я создал UserControl1.cs. У меня получился автономный элемент управления,т.е. никакие данные из других классов не передаются . Создал новый проект и добавил туда этот UserControl. Все работает.
Также попробовал сделать элемент управления с передачей данных с помощью конструктора :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Summa_test
{
public partial class UserControl1 : UserControl
{
public UserControl1 (float pp,float gg)
{
InitializeComponent();
p = pp;
g = gg;
}
float p, h, g;
private void UserControl1_Load(object sender, EventArgs e)
{
h = p + g;
label1.Text = h.ToString();
}
}
}
Но при добавлении этого компонента в Toolbox появляется ошибка: "В F:Documents and Settings..... нет компонентов, которые можно было бы поместить в эту панель элементов" В чем причина и как исправить? Или в этот элемент управления нельзя передавать данных?
Я написал код с использованием свойств:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace bred4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
UserControl1 fff = new UserControl1();
UserControl1.A_set = 6;
UserControl1.B_set = 3;
fff.Am();
}
}
}
И код в UserControl:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace bred4
{
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
static float a, b;
float c;
private void UserControl1_Load(object sender, EventArgs e)
{
}
public static float A_set
{
set { a = value; }
}
public static float B_set
{
set { b = value; }
}
private void button1_Click(object sender, EventArgs e)
{
c = a + b;
label1.Text = c.ToString();
}
public void Am()
{
c = a + b;
label1.Text = c.ToString();
}
}
}
При использовании метода button1_Click() и нажатии на кнопку результат получается правильный .А при использовании метода Am()(если кнопку не нажимать) никакого результата не получается. Как это исправить?