Задать вопрос
@Artin24
Начинающий

Как изменить свойства Label при помощи кода другого файла одного и того же проекта?

Вот два кода:
мой
private void Form1_Load(object sender, EventArgs e)
        {
            Screen[] sc = Screen.AllScreens;
            Form1 fr1 = new Form1();
            fr1.Location = sc[0].Bounds.Location;
            Application.EnableVisualStyles();
            string path = @"C:\Users\inbox\OneDrive\Рабочий стол\Учеба С шарп\ЭкранПотребителя\ЭкранПотребителя\bin\Debug";
            string filename = "p.txt";
            FileSystemWatcher watcher = new FileSystemWatcher(path, filename);
            watcher.NotifyFilter = NotifyFilters.Attributes
                                 | NotifyFilters.CreationTime
                                 | NotifyFilters.DirectoryName
                                 | NotifyFilters.FileName
                                 | NotifyFilters.LastAccess
                                 | NotifyFilters.LastWrite
                                 | NotifyFilters.Security
                                 | NotifyFilters.Size;

            watcher.Changed += OnChanged;
            watcher.Created += OnCreated;
            watcher.Deleted += OnDeleted;

            watcher.Filter = "*.txt";
            watcher.IncludeSubdirectories = true;
            watcher.EnableRaisingEvents = true;
        }
        private static void OnChanged(object sender, FileSystemEventArgs e)
        {

        }
        private static void OnCreated(object sender, FileSystemEventArgs e)
        {

        }
        private static void OnDeleted(object sender, FileSystemEventArgs e)
        {

        }


дизанер студии

public void InitializeComponent()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
            this.pictureBox1 = new System.Windows.Forms.PictureBox();
            this.product = new System.Windows.Forms.Label();
            this.Itog = new System.Windows.Forms.Label();
            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
            this.SuspendLayout();
            // 
            // pictureBox1
            // 
            this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
            this.pictureBox1.ImageLocation = "";
            this.pictureBox1.Location = new System.Drawing.Point(37, 106);
            this.pictureBox1.Name = "pictureBox1";
            this.pictureBox1.Size = new System.Drawing.Size(950, 556);
            this.pictureBox1.TabIndex = 0;
            this.pictureBox1.TabStop = false;
            // 
            // product
            // 
            this.product.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
            this.product.Location = new System.Drawing.Point(0, 21);
            this.product.Name = "product";
            this.product.Size = new System.Drawing.Size(1024, 62);
            this.product.TabIndex = 1;
            this.product.Text = "label1";
            this.product.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            this.product.Visible = false;
            // 
            // Itog
            // 
            this.Itog.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
            this.Itog.Location = new System.Drawing.Point(0, 684);
            this.Itog.Name = "Itog";
            this.Itog.Size = new System.Drawing.Size(1024, 62);
            this.Itog.TabIndex = 2;
            this.Itog.Text = "label1";
            this.Itog.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            this.Itog.Visible = false;
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(1024, 768);
            this.Controls.Add(this.Itog);
            this.Controls.Add(this.product);
            this.Controls.Add(this.pictureBox1);
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            this.Name = "Form1";
            this.Text = "Главное окно";
            this.Load += new System.EventHandler(this.Form1_Load);
            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
            this.ResumeLayout(false);

        }

Нужно изменить значения Text в product и Itog через функции(пустые) описанные в первом коде.
Задумка в том, что FileSystemWatcher отслеживает создание/изменение/удаление файла и вызывает соответствующие функции. При создании файла Visible для обеих надписей должно меняться на true, и должно выводиться содержимое файла, при изменении - просто перезапись значение Text, а при удалении - visible становится false и значения text обнуляются.
В принципе как все это сделать я разобрался, и меня застопорила эта проблема, не знаю как менять свойства виджетов через другой файл..
Прошу, помогите
  • Вопрос задан
  • 162 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
вы не приводите сигнатуры классов. тогда телепатия предлагает что то вроде fr1.имя_поля
а вообще то, обычно простой код, без навороченного мультитаскинга, в классе формы размещают..

ps по факту корень зла Form1 fr1 = new Form1();.. очень печальный симптом..
Денис Куликов, - еще раз, я готов позаниматься с вами.. но надо убрать понты и сотрудничать.. если что - в моем профиле телега. об оплате речь не стоит.. чистое сочувствие..

pps
начните с такой правки
...
Screen[] sc = Screen.AllScreens;
//  Form1 fr1 = new Form1();
// тут внимательно сравните две следующие строки
//  fr1.Location = sc[0].Bounds.Location;
Location = sc[0].Bounds.Location;
Application.EnableVisualStyles();
// ... далее доступ к полям формы в таком же стиле - просто по имени
// watcher у вас тоже уже есть. отдельный класс не нужен,
// сначала запустите простейший тест, совершенствуйте после первого успеха
...
.. хотя про watcher то что мелькнуло вроде локальная переменная метода. просто сделайте полем класса формы. в своем файле, дизайнер не трогаем. задаем поле формы, а инициализируем экземпляр и настройки так как уже начато.. и смотрим что там будет ломаться дальше )))
.. был бы проект ))
... кидал бы поэтапные правки с каментами после дебага ;)... а вы все в крутизну играете? ))).. дедлайн и тд )))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы