Вопрос про Windows Control Library и UserControl

Рейтинг: 1Ответов: 1Опубликовано: 20.06.2011

Я создал 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()(если кнопку не нажимать) никакого результата не получается. Как это исправить?

Ответы

Ответов пока нет.