Ссылка на объект требуется для нестатического поля, метода или свойства Form.BackColor - PullRequest
0 голосов
/ 01 мая 2019

Я не могу изменить BackColor, у меня есть 3 ошибки:

1)

Ссылка на объект требуется для нестатического поля, метода или свойство 'Form.BackColor' (строка 32, та же ошибка на 36)

2)

В программе определено более одной точки входа. Компилировать с / main указать тип, который содержит точку входа. (Строка 28)

Спасибо.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }

    public class CapsLockIndicator
    {
        public static void Main()
        {
            if (Control.IsKeyLocked(Keys.CapsLock))
            {
                Form1.BackColor = Color.FromArgb(102, 204, 0);
            }
            else
            {
                Form1.BackColor = Color.FromArgb(204, 0, 0);
            }
        }
    }

}

Я ожидаю, что цвет спины Form1 изменится на другие.

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

добро пожаловать в stackoverflow, когда вы создаете класс и добавляете в него некоторую функцию, вам следует вызвать эту функцию в тот момент, я предлагаю вам изучить подробнее об ООП, в любом случае вот решение вашей проблемы:

 private void Form1_Load(object sender, EventArgs e)
        {
 if (Control.IsKeyLocked(Keys.CapsLock))
            {
                this.BackColor = Color.FromArgb(102, 204, 0);
            }
            else
            {
                this.BackColor = Color.FromArgb(204, 0, 0);
            }
        }
0 голосов
/ 01 мая 2019

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

var form1 = new Form1();
form1.BackColor = Color.FromArgb(102, 204, 0);
[...]

Что касается нескольких точек входа: точка входа в C # определена здесь

Похоже, вы создали приложение WinForms по умолчанию. Если это так, то ваша точка входа должна находиться в файле с именем Program.cs, который должен создать новый экземпляр вашей формы Form1.

Пример:

enter image description here

Как уже упоминалось в комментариях, вам, вероятно, следует следовать некоторым учебникам или прочитать основы / основы C # и объектно-ориентированного программирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...