akinwunmi Ответов: 1

Как передать значение из элемента управления в другой в форме C# windows


Добрый день всем, пожалуйста, я пытаюсь подсчитать количество записей datagridview(dtuserpro) в профиле usercontrol и передать его метке в другой панели управления usercontrol, но я не получаю никакого значения.

Что я уже пробовал:

public partial class userprofile : UserControl
{
   private string count1;
   public string Countt
   {
      get { return count1; }
      set { count1 = value; }
   }

   public userprofile()
   {
      InitializeComponent();
   }

   SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\odt\Documents\Loanapp.mdf;Integrated Security=True;Connect Timeout=30");
   DataTable dt = new DataTable();

   private void profile_Load(object sender, EventArgs e)
   {
      int count = ((DataTable)this.dtuserpro.DataSource).Rows.Count;
      lblcount.Text = count.ToString();
      Countt = lblcount.Text;
   }

   private void dashboard_Load(object sender, EventArgs e)
   {
      userprofile up = new userprofile();
      metroLabel1.Text = up.Countt;
   }

1 Ответов

Рейтинг:
11

Dave Kreskowiak

Органы управления не знают друг о друге, да и не должны знать.

Ваша форма-это то, что должно передавать данные между элементами управления. Ваш пользовательский элемент управления должен предоставлять необходимые ему данные в качестве свойства, а также предоставлять событие, на которое ваша форма может подписаться, чтобы получать уведомления об изменении данных в свойстве.

При изменении значения свойства параметр свойства может вызвать событие. Форма получает уведомление и может выбрать, чтобы забрать данные из свойства и отправить их в другой элемент управления.

Это зависит от формы, чтобы определить, что делать с данными, а не от элемента управления, предоставляющего данные.


BillWoodruff

+5 очень нравится модель event-подписки по контейнеру !