Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/40: Рейтинг темы: голосов - 40, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 57
1

Обращение к ресурсам из формы

16.01.2017, 16:21. Показов 7787. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день всем!Такая ситуация:проект: есть папка Resources, 2 формы,1- это главная, в ней есть кнопка help, когда кликаешь открывается 2 форма, а в ней есть элемент textbox.Вопрос: как написать код кликая в 1 форме на help, открыть и форму 2,и отобразить текст Resources в textBox.код проекта во вложении, написан в Visual Studio 2015 на C#.
Вложения
Тип файла: rar угловая плотн перех изл от угла.rar (475.5 Кб, 14 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2017, 16:21
Ответы с готовыми решениями:

Не удается обращение к элементам и методам формы из другой формы
Добрый день, Создал 2 формы, на второй есть паблик метод, элемент и несколько переменных, доступа...

Обращение из родительской формы к элементам второй формы
Помогите пожалуйста, надо динамически вывести dataGridView с таблицами данных из БД на дочернюю...

Обращение к полям родительской формы из дочерней формы
В главной форме я создаю класс как поле и создаю другую форму public partial class FormMain...

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

18
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
16.01.2017, 17:44 2
У тебя же всё уже сделано. Осталось в Help_Load дописать:
C#
1
textBox1.Text = Properties.Resources.help;
0
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
16.01.2017, 17:51 3
iliaproson, у тебя же уже есть код для чтения из ресурсов в методе button1_Click. Достаточно перенести его в обработчик события Load. Единственное можно еще добавить код который снимет выделение с текста
C#
1
2
3
4
5
6
private void Help_Load(object sender, EventArgs e)
{
    textBox1.Text = Properties.Resources.help;
    textBox1.SelectionStart = 0;
    textBox1.SelectionLength = 0;
}
0
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
16.01.2017, 18:24 4
Цитата Сообщение от OwenGlendower Посмотреть сообщение
можно еще добавить код который снимет выделение с текста
Для этого можно установить свойство TabStop = false
0
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
16.01.2017, 18:26 5
ViterAlex, я бы не стал так делать. Это мешает тем кто работает с клавиатуры.
0
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
16.01.2017, 18:29 6
OwenGlendower, в данном случае это просто текст для чтения. Зачем на нём фокус ввода?
0
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
16.01.2017, 18:36 7
ViterAlex, фокус как таковой там конечно не нужен. Но это не означает что нужно запрещать получение фокуса по нажатию tab. Лучше изменить tab-порядок или поставить фокус на другой элемент управления. Возможность перейти к textbox через tab может понадобится если любитель работы с клавиатуры захочет скопировать текст.
0
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 57
16.01.2017, 18:53  [ТС] 8
Нет, вы не поняли.Я 2 раза нажимаю на кнопку: сначала чтоб зайти на help,а потом чтоб открыть его,я хочу чтоб это было 1 кнопкой.Но как это сделать?
0
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
16.01.2017, 19:01 9
iliaproson, мы поняли - оба ответа(от ViterAlex и мой) именно это и исправляют.
1
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 57
16.01.2017, 19:49  [ТС] 10
Все спасибо, разобрался, поменял везде модификатор на public
0
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
16.01.2017, 19:50 11
iliaproson, чей модификатор?
0
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 57
16.01.2017, 19:52  [ТС] 12
В форме Help у метода texbox1 в свойствах, в MSDN есть статья про закрытые и открытые коды.
0
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
16.01.2017, 19:56 13
iliaproson, это плохая практика. Если ты хочешь менять текст справки из другой формы, то лучше сделать так
C#
1
2
3
4
5
// Форма Help
public void SetHelpText(string text)
{
    textBox1.Text = text;
}
C#
1
2
3
4
// Создание формы
var helpForm = new Help();
helpForm.SetHelpText(Properties.Resources.help);
helpForm.ShowDialog();
0
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 57
16.01.2017, 20:02  [ТС] 14
да, только проблема в том что у меня в 1 форме только button, а во 2 только textbox, лишнее элементы вставлять не хочу
0
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
16.01.2017, 20:02 15
iliaproson, чем тогда не устраивает решение с размещением кода в обработчике события Load?
0
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 57
16.01.2017, 20:19  [ТС] 16
Ничем, тоже работает

Добавлено через 7 минут
Еще 1 проблема: при некоторых значениях из окошек,выделяет Appilication и при расчете пишет:Необработанное исключение типа "System.OverflowException" в System.Drawing.dll. Дополнительные сведения: Overflow error. Как это исправить?
Это все в Porgrams.cs:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.Windows.Forms;
 
 
namespace угловая_плотность_излучения_от_угла
{
    static class Program
    {
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}
0
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
16.01.2017, 20:33 17
iliaproson, покажи код класса Form1
0
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 57
16.01.2017, 20:44  [ТС] 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
using System;
using System.Numerics;
using System.Windows.Forms;
 
namespace угловая_плотность_излучения_от_угла
{
    public partial class Form1 : Form
    {
        /// <summary>
        /// Хранит два значения 1 либо 4, которые указывают на тип излучения
        /// </summary>
        int alpha;
        /// <summary>
        ///Хранит отношение толщины кристаллической пластинки к волновому вектору возникающего излучения *2*Pi
        /// </summary>
        double t;
        /// <summary>
        ///Хранит скорость частицы в единицах скорости света
        /// </summary>
        double beta;
        /// <summary>
        ///Хранит заряд до вхда в пластинку
        /// </summary>
        double z1;
        /// <summary>
        ///Хранит заряд после входа в пластинку.Часть заряда z1 - z2 остается внутри кристалла
        /// </summary>
        double z2;
        Complex eps;// Диэлектрическая постоянная может быть комплексной
        // Матрица минора получается путем удаления i-ой строки и j-ого столбца из исходной матрицы
        Complex[,] A(int i, int j, Complex[,] a)
        {
            int n = a.GetLength(1);// размерность исходной матрицы
            Complex[,] result = new Complex[n - 1, n - 1];// здесь будут элементы результирующей матрицы
            for (int k = 0; k < n; k++)
            {
                if (k == i)
                    continue;// вырезаем i-ую строку
                for (int l = 0; l < n; l++)
                {
                    if (l == j)
                        continue;// вырезаем j-ый столбец
                    result[k < i ? k : k - 1, l < j ? l : l - 1] = a[k, l];
                }
            }
            return result;
        }
        /// <summary>
        /// Справедливо разложение по любой строке (столбцу):
        /// Det= сумма по всем элементам i-ой строки от произведения элемента на алгебраическое дополнение\sum_{j=1}^n (-1)^{i+j} a_{ij}\ M_j^i 
        /// </summary>
        Complex Det(Complex[,] mtrx)
        {
            int n = mtrx.GetLength(1);
            if (n == 1)
                return mtrx[0, 0];
            Complex result = 0;
            // раскрываем по 1-ой строке
            for (int j = 0; j < n; j++)
                result += Math.Pow(-1, j) * mtrx[1, j] * Det(A(1, j, mtrx));
            return result;
        }
        /// <summary>
        /// Объявление неизвестного X
        /// </summary>
        Complex X(double teta, int alpha)
        {
            // Текущие элементарные функции. Здесь teta в радианах, а не в градусах!!!
            double
               beta2 = beta * beta,
               sin = Math.Sin(teta), sin2 = sin * sin,
               cos = Math.Cos(teta), cos2 = cos * cos,
               oneMinusBeta2Cos2 = (1 - beta2 * cos2),
               betaSin2 = beta * sin2,
               fi = t / beta,
               c = 1 / cos;
            /// <summary>
            /// Коплексные коэффициенты матрицы и свободные члены системы линейных алгебраических уравнений(слау)
            /// </summary>
            Complex
                expFi = Complex.Exp(Complex.ImaginaryOne * fi),
                epsSin = eps - sin2,
                oneMinusbeta2epsSin = (1 - beta2 * epsSin),
                _W = z1 * eps * oneMinusbeta2epsSin - z2 * oneMinusBeta2Cos2,
                _T = (eps - 1) * (1 - beta2 * (eps + cos2)),
                _G = eps * beta * (z2 * oneMinusBeta2Cos2 - z1 * oneMinusbeta2epsSin),
                _F = (eps - 1) * eps * beta2 * beta,
                _S = eps * oneMinusBeta2Cos2 * oneMinusbeta2epsSin,
                sqrt = Complex.Sqrt(epsSin),
                a = Complex.Exp(Complex.ImaginaryOne * t * sqrt),
                b = Complex.Exp(Complex.ImaginaryOne * t * cos),
                d = eps / sqrt,
                _Q1 = Complex.ImaginaryOne * betaSin2 * _W / _S,
                _Q2 = -betaSin2 * Complex.ImaginaryOne * expFi * z2 * _T / _S,
                _Q3 = Complex.ImaginaryOne * betaSin2 * _G / _S,
                _Q4 = -betaSin2 * Complex.ImaginaryOne * expFi * z2 * _F / _S;
            /// <summary>
            /// Комплексная матрица
            /// </summary>
            Complex[,]
                mtrxA = { { 1, -1, 1, 0 }, { 0, 1 / a, -a, b }, { c, -d, -d, 0 }, { 0, d / a, a * d, -b * c } },
                mtrxD1 = { { _Q1, -1, 1, 0 }, { _Q2, 1 / a, -a, b }, { _Q3, -d, -d, 0 }, { _Q4, d / a, a * d, -b * c } },
                mtrxD4 = { { 1, -1, 1, _Q1 }, { 0, 1 / a, -a, _Q2 }, { c, -d, -d, _Q3 }, { 0, d / a, a * d, _Q4 } };
            Complex detA = Det(mtrxA);// Определитель матрицы коэффициентов
            return alpha == 1 ? Det(mtrxD1) / detA : Det(mtrxD4) / detA;
        }
        public Form1()
        {
            InitializeComponent();
            emission_type.Text = "1";
            bettaBox.Text = "0,98";
            tBox.Text = "628";
            z1Box.Text = "2";
            z2Box.Text = "1";
            ReBox.Text = "1";
            ImBox.Text = "1,5";
        }
        /// <summary>
        /// Выбор типа излучения
        /// </summary>
        private void emission_type_Click(object sender, EventArgs e)
        {
            if (emission_type.Text == "1") alpha = Convert.ToInt32("1");
             if (emission_type.Text == "4") alpha = Convert.ToInt32("4");
         }
        /// <summary>
        /// Вычисление и постройка графика
        /// </summary>
        private void compute_Click(object sender, EventArgs e)
        {
            /// <summary>
            /// Здесь считываются параметры с окошек 
            /// t =100 * 2 * Math.PI;
            /// beta =.9;
            /// z1 = 1;
            /// z2 = 1;
            /// eps = new Complex(0.98, 0.1);
            /// eps =1.5 + Complex.ImaginaryOne * .1;
            /// </summary>
            beta = double.Parse(bettaBox.Text);
            t = double.Parse(tBox.Text);
            z1 = double.Parse(z1Box.Text);
            z2 = double.Parse(z2Box.Text);
            double Re, Im;
            Re = double.Parse(ReBox.Text);
            Im = double.Parse(ImBox.Text);
            eps = new Complex(Re, Im);
            double lowTeta = -Math.PI * .5 + .0000001, topTeta = Math.PI * .5;
            int tetaSteps = 1000;
            ///<summary>
            /// Построение графика функции зависимость угловой плотности излучения от угла
            ///</summary>
            for (int i = 0; i < tetaSteps; i++)
            {
                double
                     teta = lowTeta + (double)i / tetaSteps * (topTeta - lowTeta),
                     mod = X(teta, alpha).Magnitude / Math.Sin(teta);
                fastLine1.Add(teta, mod * mod);
            }
        }
        /// <summary>
        /// Очистка графика и окошек
        /// </summary>
        private void clrbutton_Click(object sender, EventArgs e)
        {
            fastLine1.Clear();
        }
       /// <summary>
        /// Вызов справки(Help)
        /// </summary>
        private void helpbutton_Click(object sender, EventArgs e)
        {
            Help frm = new Help();
            frm.ShowDialog();
        }
    }
}

А так есть все в архиве в 1 сообщении
0
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 57
21.01.2017, 00:55  [ТС] 19
Кто может помочь с проблемой,описываемой в сообщении 16.01.17?
0
21.01.2017, 00:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2017, 00:55
Помогаю со студенческими работами здесь

Обращение к экземпляру формы
Добрый день! Мне нужно временно скрывать главную форму, я это делаю с помощью WindowState, затем из...

Обращение к экземпляру формы
При создании формы, как к ней обращаться, кроме this? Экземпляр же не создается? Как обратить к...

Обращение к объекту из другой формы
Добрый день, знаю что в нете есть многи инфы по этому вопросу, но не могу понять. Есть форма с...

Обращение к объекту другой формы
Доброго времени суток! Я не могу обратиться к объекту из другой формы. Код подчеркивается красным,...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru