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

Что в этом коде надо скопировать в программный файл, а что в форму?

26.07.2020, 16:47. Показов 822. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Взял пример из документации.
Подскажите что в этом коде надо скопировать в программный файл, а что в форму. Чтобы можно было запустить и посмотреть.

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
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;
using System.Data.SqlClient;
using System.Globalization;
 
 
namespace WindowsFormsApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    }
}
public class Form1 : Form
{
    private DataGridView dataGridView1 = new DataGridView();
    private BindingSource bindingSource1 = new BindingSource();
    private SqlDataAdapter dataAdapter = new SqlDataAdapter();
    private Button reloadButton = new Button();
    private Button submitButton = new Button();
 
    [STAThread()]
    public static void Main()
    {
        Application.Run(new Form1());
    }
 
    // Initialize the form.
    public Form1()
    {
        dataGridView1.Dock = DockStyle.Fill;
 
        reloadButton.Text = "Reload";
        submitButton.Text = "Submit";
        reloadButton.Click += new EventHandler(ReloadButton_Click);
        submitButton.Click += new EventHandler(SubmitButton_Click);
 
        FlowLayoutPanel panel = new FlowLayoutPanel
        {
            Dock = DockStyle.Top,
            AutoSize = true
        };
        panel.Controls.AddRange(new Control[] { reloadButton, submitButton });
 
        Controls.AddRange(new Control[] { dataGridView1, panel });
        Load += new EventHandler(Form1_Load);
        Text = "DataGridView data binding and updating demo";
    }
 
    private void GetData(string selectCommand)
    {
        try
        {
            // Specify a connection string.
            // Replace <SQL Server> with the SQL Server for your Northwind sample database.
            // Replace "Integrated Security=True" with user login information if necessary.
            String connectionString =
                "Data Source=<SQL Server>;Initial Catalog=Northwind;" +
                "Integrated Security=True";
 
            // Create a new data adapter based on the specified query.
            dataAdapter = new SqlDataAdapter(selectCommand, connectionString);
 
            // Create a command builder to generate SQL update, insert, and
            // delete commands based on selectCommand.
            SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
 
            // Populate a new data table and bind it to the BindingSource.
            DataTable table = new DataTable
            {
                Locale = CultureInfo.InvariantCulture
            };
            dataAdapter.Fill(table);
            bindingSource1.DataSource = table;
 
            // Resize the DataGridView columns to fit the newly loaded content.
            dataGridView1.AutoResizeColumns(
                DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
        }
        catch (SqlException)
        {
            MessageBox.Show("To run this example, replace the value of the " +
                "connectionString variable with a connection string that is " +
                "valid for your system.");
        }
    }
 
    private void Form1_Load(object sender, EventArgs e)
    {
        // Bind the DataGridView to the BindingSource
        // and load the data from the database.
        dataGridView1.DataSource = bindingSource1;
        GetData("select * from Customers");
    }
 
    private void ReloadButton_Click(object sender, EventArgs e)
    {
        // Reload the data from the database.
        GetData(dataAdapter.SelectCommand.CommandText);
    }
 
    private void SubmitButton_Click(object sender, EventArgs e)
    {
        // Update the database with changes.
        dataAdapter.Update((DataTable)bindingSource1.DataSource);
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.07.2020, 16:47
Ответы с готовыми решениями:

Как разобраться ,что в этом коде за что отвечает?
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; int main () { srand(time(NULL)); unsigned const int n=4,...

Кто сможет объяснить что означает в этом коде 0x55555, что это такое, для чего предназначено?
#include &quot;stdafx.h&quot; #pragma warning(disable : 4996) #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; int main() ...

Что означают все эти данные вот в этом коде PITHON и где можно найти описание всех этих данных в коде
#!/usr/bin/python # Quick and dirty demonstration of CVE-2014-0160 by Jared Stafford (jspenguin@jspenguin.org) # The author...

7
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
26.07.2020, 16:54
Что по-Вашему, есть "программный файл", а что "форма" ?
0
Заблокирован
26.07.2020, 18:06  [ТС]
Программный файл

C#
1
2
3
4
public static void Main()
    {
        Application.Run(new Form1());
    }
Остальное форма. Верно?

Добавлено через 53 минуты
После создания
Приложение Windows Forms (.Net Framework)
В проекте есть файл Program.cs и Form1.cs соответственно. Это и подразумевалось под программным файлом и формой
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
26.07.2020, 19:14
Можно все писать в одном юните (программном модуле), можно в разных. В приведенном Вами примере все в одном стакане.
Можно создать новый проект WinForm, удалить из него юнит и форму Form1, в юнит аппликэйшна просто скопировать код и выполнить. Форма там создается динамически, как и все вложенные в нее контролы (что видно из кода).

Как Вы будете делать зависит от Вас.

Обычно используют конструктор, в котором можно удобно и быстро сконструировать визуальный интерфейс программы. В этом случае будет как минимум два юнита (приложение и форма). Если для доступа к БД Вы пожелаете воспользоваться EF, то получите еще несколько юнитов.
Разбивка кода на юниты применяется почти всегда т.к. это соответствует SOLID-паттерну и позволяет сделать проект более гибким, наглядным и просто и легко тестируемым и отлаживаемым.

Добавлено через 3 минуты
"программный файл" - это любой файл с расширением .sc.
Если речь идет о приложении, то в WinForms есть обязательный .sc-файл Application, который, как Вы можете заметить состоит из соотв.класса.

Выбирая паттерн при создании нового проекта, Вы получаете некоторую заготовку, которую при желании можно выкрасить и выбросить, заменив полностью своим кодом. Главное, чтобы он функционировал правильно
1
2 / 2 / 1
Регистрация: 09.02.2020
Сообщений: 477
26.07.2020, 19:25
Подскажите, какое значение имеет файл form1.desinger.cs который вложен в form1.cs, а также program вложенный в program.cs?
B обо всех этих файлах и конфигурациях можно почитать?
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
26.07.2020, 19:44
Назначение этого файла очевидно из его названия.

Когда приложение стартует, то нет никаких форм, кнопок, датагридов и т.д. Все их необходимо создать и положить на форму в нужные места и с нужными свойствами.

Чтобы этого не делать вручную, VS предоставляет сервис - конструктор, который дает удобные инструменты визуально спроектировать весь программный интерфейс - меню, кнопки, гриды, лабели, комбобоксы и т.д. При этом все эти элементы вместе со всеми их свойствами должны быть где-то сохранены, чтобы при старте программы правильно их создать и расположить. Для этого и служит файл desiner.cs, метод которого InitializeComponent() запускается автоматически при старте приложения и запуске(создании) формы (метод Run).
1
2 / 2 / 1
Регистрация: 09.02.2020
Сообщений: 477
26.07.2020, 20:32
desiner.cs надо форматировать или он создается автоматически?
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
26.07.2020, 20:50
Цитата Сообщение от MyCyberMan Посмотреть сообщение
desiner.cs надо форматировать или он создается автоматически?
Его создает конструктор автоматически.

Если надо поменять некоторые свойства элементов либо создать их динамически (в ран-тайме), то это делается кодом. Как, правило, кодом формы, которой эти элементы принадлежат или будут принадлежать.

Если необходимо создать динамически новую форму (например диалоговую модальную), то можно ее как создать динамически (как правило, в обработчике события какого-то элемента основной формы, например кнопки), так и вызвать конструктор new для формы, созданной в режиме конструктора VS.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.07.2020, 20:50
Помогаю со студенческими работами здесь

Что значит a[0] в этом коде
Что значит a в этом коде? def min_max(a): if a: maximum = a minimum = a for i in a: ...

Что не так в этом коде!
Что не так в этом куске кода? Укажите на все ошибки и слабые места. &lt;? $result = mysql_query(&quot; SELECT * FROM users ...

Что не правильно в этом коде?
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { float I; //Годовая процентная...

Что в этом коде не правильно?
Как правильно синтезировать этот код? array и array_size - выдает ошибку double avg = 0; for (int i = 0; i&lt;array_size; i++) avg...

Что в этом коде не так?
#include &lt;iostream&gt; using namespace std; struct student { char firstname; char lastname; char surname; int...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru