Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/117: Рейтинг темы: голосов - 117, средняя оценка - 4.64
4 / 4 / 0
Регистрация: 21.12.2013
Сообщений: 91

Инициализатор поля не может обращаться к нестатическому полю, методу или свойству

21.05.2014, 03:05. Показов 22607. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ, пишу прогу, которая строит график функции согласно формуле, но тут столкнулся с такой вот ошибкой: "Инициализатор поля не может обращаться к нестатическому полю, методу или свойству "WindowsFormsApplication1.Form1.txt_ a1"

А началось при попытке объявить переменные: a1, a2, b1, b2, xmin, xmax. Переменные должны вводиться с textBox, у каждого свой, а тут такая ошибка. Я совсем новичок, поэтому прошу сильно заумно не разъяснять.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
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;
using System.Drawing.Drawing2D;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        const byte Ngr = 4, NPoint = 100;
 
        const double xmin = 0, xmax = 6*Math.PI;
        double a1 = Convert.ToDouble(txt_a1.Text);
        double a2 = Convert.ToDouble(txt_a2.Text);
        double b1 = Convert.ToDouble(txt_b1.Text);
        double b2 = Convert.ToDouble(txt_b2.Text);
        
        const double hx = 0.25;
 
        double fxmin = Convert.ToDouble(txt_xmin.Text);
        double fxmax = Convert.ToDouble(txt_xmax.Text);
 
        double[] x = new double[NPoint];
        double[] fx = new double[NPoint];
 
        double MasX;
        double MasF;
 
        int HeightBCont, WidthBCont;
        int HeightVCont, WidthVCont;
        
        double BGX, BGF;
        
        // Формула графика функции
        private double F_X(double X_F)
        {
            return Math.Exp(Math.Sin(a1 * X_F)) - Math.Exp(Math.Cos(b1 * X_F));
        }
 
        private double F_X2(double X_F2)
        {
            return Math.Exp(Math.Sin(a1 * X_F2)) - Math.Exp(Math.Cos(b2 * X_F2));
        }
 
        private double F_X3(double X_F3)
        {
            return Math.Exp(Math.Sin(a2 * X_F3)) - Math.Exp(Math.Cos(b1 * X_F3));
        }
 
        private double F_X4(double X_F4)
        {
            return Math.Exp(Math.Sin(a2 * X_F4)) - Math.Exp(Math.Cos(b2 * X_F4));
        }
                
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
                        
        }
 
        // Кнопка "График"
        private void graph_btn_Click(object sender, EventArgs e)
        {
            Graphics g = pb.CreateGraphics();
            g.Clear(Color.White);
            HeightBCont = pb.Height;
            WidthBCont = pb.Width;
            HeightVCont = HeightBCont / (Ngr / 2) - 100;
            WidthVCont = WidthBCont / (Ngr / 2) - 100;
            MasX = WidthVCont / (xmax - xmin);
            fx[0] = F_X(xmin);
 
            for (int i = 0; i < NPoint; i++)
            {
                x[i] = xmin + i * hx;
            }
 
            // Задаем начальные значения
            fxmax = fx[0]; fxmin = fx[0];
 
            // Производим поиск минимальных и максимальных значений
            for (int i = 0; i < NPoint; i++)
            {
                if (fx[i] > fxmax) fxmax = fx[i];
                if (fx[i] < fxmin) fxmin = fx[i];
            }
 
            // Расчетаем масштабы
            MasF = HeightVCont / (fxmax - fxmin);
 
            // Строим прямоугольники виртуальных контекстов
            BGX = 50;
            BGF = 50;
 
            Pen blackPen = new Pen(Color.Black, 1);
 
            g.DrawRectangle(blackPen, (float)BGX, (float)BGF, WidthVCont, HeightVCont);
            
            // Строим сетки на графиках
            int dGX = WidthVCont / 10;
            int dGY = HeightVCont / 10;
 
            Pen gridPen = new Pen(Color.Gray, 1);
            gridPen.DashStyle = DashStyle.Dash;
 
            for (int i = 0; i < 10; i++)
            {
                g.DrawLine(gridPen, (float)(BGX + i * dGX), (float)BGF, (float)(BGX + i * dGX), (float)(BGF + HeightVCont));
                g.DrawLine(gridPen, (float)BGX, (float)(BGF + i * dGY), (float)(WidthVCont + BGX), (float)(BGF + i * dGY));
            }
 
            // Выводим надписи на графиках
            Font myFont = new Font("Tahoma", 10, FontStyle.Bold);
            SolidBrush myBrush = new SolidBrush(Color.Black);
            String myStr;
 
            for (int i = 0; i < 10; i++)
            {
                myStr = String.Format("{0:F}", xmin + i * (xmax - xmin) / 10);
                g.DrawString(myStr, myFont, myBrush, (float)(BGX + i * dGX - 20), (float)(BGF + HeightVCont + 20));
 
                myStr = String.Format("{0:F}", fxmin + i * (fxmax - fxmin) / 10);
                g.DrawString(myStr, myFont, myBrush, 10, (float)(BGF + HeightVCont - dGY * i - 10));
            }
 
            // Строим графики
            Pen fPen = new Pen(Color.Red, 2);
 
            for (int i = 0; i < NPoint - 1; i++)
            {
                g.DrawLine(fPen, (float)(BGX + Math.Abs(x[i] - xmin) * MasX),
                (float)(BGF + HeightVCont - (fx[i] - fxmin) * MasF),
                (float)(BGX + Math.Abs(x[i + 1] - xmin) * MasX),
                (float)(BGF + HeightVCont - (fx[i + 1] - fxmin) * MasF));
            }
 
        }
 
        // Кнопака "График_1"
        private void button1_Click(object sender, EventArgs e)
        {
                   
        }
 
        // Кнопка "График_2"
        private void button2_Click(object sender, EventArgs e)
        {
 
        }
 
        // Кнопка "График_3"
        private void button3_Click(object sender, EventArgs e)
        {
 
        }
 
        // Кнопка "График_4"
        private void button4_Click(object sender, EventArgs e)
        {
 
        }   
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.05.2014, 03:05
Ответы с готовыми решениями:

Инициализатор не может обращаться к не статическому полу или методу объекта
PointF Arr = new PointF // Исходный массив точек { new PointF(10,150), new PointF(5,50), new PointF(150,50), new...

Инициализатор поля не может обращаться к нестатическому полю, методу или свойству
Ситуация такая, есть массив, нужно объявить его в том же массиве что и переменные в нем. Выдаёт указанную ошибку. Сделать статической...

Инициализатор поля не может обращаться к нестатическому полю
Привет всем! При инициализации нового поля в классе приходится обращаться к уже существующему полю(инициализированную конструктором)...

22
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
23.05.2014, 19:31
Студворк — интернет-сервис помощи студентам
Zzzeke, zedgraph тебе в помощь , ему задаешь только точки , график строит сам
0
4 / 4 / 0
Регистрация: 21.12.2013
Сообщений: 91
23.05.2014, 20:22  [ТС]
Metall_Version, рад бы, да вот надо именно через Graphics с использованием pictureBox.
0
4 / 4 / 0
Регистрация: 21.12.2013
Сообщений: 91
24.05.2014, 22:18  [ТС]
С построением разобрался, но вот только возникла проблемка с масштабированием, кривая вылазит за границу графика. Может кто подскажет? Код немножко поменялся:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
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;
using System.Drawing.Drawing2D;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        const byte Ngr = 2, NPoint = 100;
                
        double a1, a2, b1, b2, xmin, xmax;
 
        const double hx = 0.25;
        double fxmin;
        double fxmax;
 
        double[] x = new double[NPoint];
        double[] fx = new double[NPoint];
 
        double MasX;
        double MasF;
 
        int HeightBCont, WidthBCont;
        int HeightVCont, WidthVCont;
 
        double BGX, BGF;
        double BGX1, BGF1, BGX2, BGF2, BGX3, BGF3;
 
        // Формулы графиков функций
        private double F_X(double X_F)
        {
            return Math.Exp(Math.Sin(a1 * X_F)) - Math.Exp(Math.Cos(b1 * X_F));
        }
 
        private double F_X2(double X_F2)
        {
            return Math.Exp(Math.Sin(a1 * X_F2)) - Math.Exp(Math.Cos(b2 * X_F2));
        }
 
        private double F_X3(double X_F3)
        {
            return Math.Exp(Math.Sin(a2 * X_F3)) - Math.Exp(Math.Cos(b1 * X_F3));
        }
 
        private double F_X4(double X_F4)
        {
            return Math.Exp(Math.Sin(a2 * X_F4)) - Math.Exp(Math.Cos(b2 * X_F4));
        }        
        
        public Form1()
        {
            InitializeComponent();
        }        
 
        private void Form1_Load(object sender, EventArgs e)
        {
                        
        }
 
        // Кнопка "График"
        private void graph_btn_Click(object sender, EventArgs e)
        {
            a1 = Convert.ToDouble(txt_a1.Text);
            a2 = Convert.ToDouble(txt_a2.Text);
            b1 = Convert.ToDouble(txt_b1.Text);
            b2 = Convert.ToDouble(txt_b2.Text);
 
            xmin = Convert.ToDouble(txt_xmin.Text);
            xmax = Convert.ToDouble(txt_xmax.Text);
 
            Graphics g = pb.CreateGraphics();
            g.Clear(Color.White);
            HeightBCont = pb.Height;
            WidthBCont = pb.Width;
            HeightVCont = HeightBCont / (Ngr / 2) - 100;
            WidthVCont = WidthBCont / (Ngr / 2) - 100;
            MasX = WidthVCont / (xmax - xmin);
            x[0] = xmin;
            fx[0] = F_X(xmin);
 
            for (int i = 0; i < NPoint; i++)
            {
                x[i] = xmin + i * hx;
                fx[i] = F_X(x[i]);
            }
 
            // Задаем начальные значения
            fxmax = fx[0]; fxmin = fx[0];
 
            // Производим поиск минимальных и максимальных значений
            for (int i = 0; i < NPoint; i++)
            {
                if (fx[i] > fxmax) fxmax = fx[i];
                if (fx[i] < fxmin) fxmin = fx[i];
            }
 
            // Расчетаем масштабы
            MasF = HeightVCont / (fxmax - fxmin);
 
            // Строим прямоугольники виртуальных контекстов            
            BGX = 50;
            BGF = 50;
            
            Pen blackPen = new Pen(Color.Black, 1);
 
            g.DrawRectangle(blackPen, (float)BGX, (float)BGF, WidthVCont, HeightVCont);
            
            // Строим сетки на графиках
            int dGX = WidthVCont / 10;
            int dGY = HeightVCont / 10;
 
            Pen gridPen = new Pen(Color.Gray, 1);
            gridPen.DashStyle = DashStyle.Dash;
 
            for (int i = 0; i < 10; i++)
            {
                g.DrawLine(gridPen, (float)(BGX + i * dGX), (float)BGF, (float)(BGX + i * dGX), (float)(BGF + HeightVCont));
                g.DrawLine(gridPen, (float)BGX, (float)(BGF + i * dGY), (float)(WidthVCont + BGX), (float)(BGF + i * dGY));
            }
 
            // Выводим надписи на графиках
            Font myFont = new Font("Courier New", 10, FontStyle.Bold);
            SolidBrush myBrush = new SolidBrush(Color.Black);
            String myStr;
 
            for (int i = 0; i < 10; i++)
            {
                myStr = String.Format("{0:F}", xmin + i * (xmax - xmin) / 10);
                g.DrawString(myStr, myFont, myBrush, (float)(BGX + i * dGX - 20), (float)(BGF + HeightVCont + 20));
 
                myStr = String.Format("{0:F}", fxmin + i * (fxmax - fxmin) / 10);
                g.DrawString(myStr, myFont, myBrush, 10, (float)(BGF + HeightVCont - dGY * i - 10));
            }
 
            // Строим графики
            Pen fPen = new Pen(Color.Red, 2);
 
            for (int i = 0; i < NPoint - 1; i++)
            {
                g.DrawLine(fPen, (float)(BGX + Math.Abs(x[i] - xmin) * MasX),
                (float)(BGF + HeightVCont - (fx[i] - fxmin) * MasF),
                (float)(BGX + Math.Abs(x[i + 1] - xmin) * MasX),
                (float)(BGF + HeightVCont - (fx[i + 1] - fxmin) * MasF));
            }
        }
 
        // Кнопака "График_1"
        private void button1_Click(object sender, EventArgs e)
        {
                   
        }
 
        // Кнопка "График_2"
        private void button2_Click(object sender, EventArgs e)
        {
 
        }
 
        // Кнопка "График_3"
        private void button3_Click(object sender, EventArgs e)
        {
 
        }
 
        // Кнопка "График_4"
        private void button4_Click(object sender, EventArgs e)
        {
 
        }
 
        // Переменная a1
        private void txt_a1_TextChanged(object sender, EventArgs e)
        {           
 
        }
 
        private void txt_a2_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            
        }                       
    }
}
Миниатюры
Инициализатор поля не может обращаться к нестатическому полю, методу или свойству  
Вложения
Тип файла: rar WindowsFormsApplication2.rar (76.6 Кб, 3 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.05.2014, 22:18

Инициализатор поля не может обращаться к нестатическому полю
Ошибка 1 Инициализатор поля не может обращаться к нестатическому полю, методу или свойству &quot;ConsoleApplication1.GlobalP.rand&quot; Вот...

Инициализатор поля не может обращаться к нестатическому полю
Для инициализации некоторого редактора есть такая строчка Scintilla scintilla1 = (Scintilla)wfh.Child; Находясь в public MainWindow()...

Инициализатор поля не может обращаться к нестатическому полю
Код класса class massive { int m, n; public int M { get { return m; } ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru