EM_Y Ответов: 1

Возвращает логическое значение из пользовательского элемента управления в другой 1 УНЦ на C#


Когда я пытаюсь получить свое логическое значение во втором пользовательском элементе управления , он приносит мне инициализированное значение этого логического значения, а не последнее его значение !

=> результат показывает ложь все время !

Мне нужна ваша помощь , спасибо за любое внимание!

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

пользовательский контроль 1 :

 public partial class UC1 : UserControl
{
        public bool boolquery= false;

 
 private void BUTTON_Click(object sender, EventArgs e)
 { 

if(MYcondition is true )
{
boolquery=true ;
}
else 
{
boolquery= false ;
}


пользовательский контроль 2 :
 public partial class UC2: MetroFramework.Controls.MetroUserControl
{

 private void buttonShow_Click(object sender, EventArgs e)
        { 
                userControl1 uc1= new userControl1 ();
       
               MessageBox.Show(uc1.boolquery.ToString());

         }
}


Я пробовал собственность компании Methode ( родителя к ребенку ): же проблем (Boolquery значение всегда равно false !


дочерняя форма (пользовательский элемент управления 2):
public bool boolquery;

public bool Boolquery        
{
  get { return boolquery; }
  set { boolquery= value; }
 }

 private void getdaTEbOOLvalue_Click(object sender, EventArgs e)
   {
MessageBox.Show(Boolquery.ToString());
   }

формы родительского контроля (пользователей 1) :
 private usercontrol2  uc2;

  public void setValueBool_Click(object sender, EventArgs e)
   {

uc2= new UCconfig();
uc2.Boolquery = true;
    }

User 14190756

1

1 Ответов

Рейтинг:
10

OriginalGriff

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

Вам нужно пройти через родительский контейнер: Передача информации между двумя формами, Часть 3: Ребенок ребенку[^] - это относится к формам, но это точно такой же процесс для UserControls (в конце концов, формы являются производными от элементов управления).


EM_Y

Я обновил свой код ; пожалуйста, проверьте его !
я попробовал свойство methode , но мое значение не меняется ! Boolquery всегда ложь !

OriginalGriff

Ты не слушаешь, что я говорю ... Вам нужно пройти через родителя, а не создавать новый экземпляр.

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

То, что вы делаете, это кладете свой мобильный телефон в бардачок моей машины, покупаете себе новую машину и ожидаете найти свой телефон в ее бардачке. Ты же знаешь, что его там не будет, потому что он все еще в моей машине!
Так почему же вы делаете то же самое со своими классами?

User 14190756

1

EM_Y

Я попытался перейти по ссылке решения, но у меня не было никакого результата ! моя ошибка !

я работал с condtructor methode , он работает, но я был бы счастлив, если бы вы помогли мне с моей первой попыткой (property methode ):

public frmChild (строковые данные)
{
метод InitializeComponent();
tbData.Текстовые данные;
}
родительская форма
Скрыть Код Скопировать
frmChild child = new frmChild("Привет, дитя!");
ребенок.Покажите();


Спасибо Вам за вашу помощь и внимание :)

OriginalGriff

Перейдите по ссылке, она даст вам код недвижимости!

EM_Y

очень благодарен :)

OriginalGriff

Всегда пожалуйста!