powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# Как мне выполнить код формы заново?
6 сообщений из 6, страница 1 из 1
c# Как мне выполнить код формы заново?
    #38224905
gfan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть форма1, в которой отображаются некие записи и их характеристики. Записи в листбоксах, характеристики отображаются по нажатию. Так же есть кнопка добавить на 1ой форме.
После добавления записи во второй форме, нужно обновить первую форму (выполнить конструктор первой формы заново) и закрыть 2ю форму. Можно ли так сделать? Пробовал во второй форме писать нечто вроде:

Код: c#
1.
2.
3.
                    Form1 form1 = new Form1();
                    form1.Refresh();
                    this.Close();


Но форма1 не обновляется. В листбоксах на форме1 те же записи. (Записи добавляются в листбокс из тхт, при срабатывании конструктора)
...
Рейтинг: 0 / 0
c# Как мне выполнить код формы заново?
    #38225000
dymal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gfan, а почему выбран путь именно пересоздания формы1?
Не проще ли просто вызвать Ащкь1.Refresh?

И еще (наверное. самое главное): очень важно знать что делает функция Refresh. Вы создаете новую форму form1, а компоненты формы в этой функции инициализируете (InitializeComponent)? А видимость формы (Form1.Visible) там устанавливаете?

И последнее: не понятно когда/по какому событию выполняется тот кусок кода, что вы привели.
...
Рейтинг: 0 / 0
c# Как мне выполнить код формы заново?
    #38225006
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gfanЕсть форма1, в которой отображаются некие записи и их характеристики. Записи в листбоксах, характеристики отображаются по нажатию. Так же есть кнопка добавить на 1ой форме.
После добавления записи во второй форме , нужно обновить первую форму (выполнить конструктор первой формы заново) и закрыть 2ю форму. Можно ли так сделать? Пробовал во второй форме писать нечто вроде:

Код: c#
1.
2.
3.
                    Form1 form1 = new Form1();
                    form1.Refresh();
                    this.Close();


Но форма1 не обновляется. В листбоксах на форме1 те же записи. (Записи добавляются в листбокс из тхт, при срабатывании конструктора)1. И что происходет при клике на кнопку "Добавить" на 1-й форме?
2. Куда добавляет записи вторая форма?
3. Стандартный метод Refresh перерисовывает форму и все элементы управления, что расположены на ней. С чего Вы взяли, что он делает то, что Вам нужно?
...
Рейтинг: 0 / 0
c# Как мне выполнить код формы заново?
    #38225023
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace WindowsFormsApplication
{
    public partial class Form1 : Form
    {
        private DataService data = new DataService();

        public Form1()
        {
            InitializeComponent();
            DataBind();
        }

        private void DataBind()
        {
            listBox.DataSource = null;
            listBox.DataSource = data.GetAll();
        }

        private void OnAddClick(object sender, EventArgs e)
        {
            using (var form = new Form2())
            {
                if (form.ShowDialog() == DialogResult.OK)
                {
                    DataBind();
                }
            }
        }
    }

    /// <summary>
    /// Класс, что предоставляет нам методы, для работы с фейковыми данными
    /// </summary>
    public class DataService
    {
        private static List<String> list = new List<String> { "Иванов", "Петров", "Сидоров" };

        public void Add(string item)
        {
            list.Add(item);
        }

        public IEnumerable<String> GetAll()
        {
            return list;
        }
    }
}
...
Рейтинг: 0 / 0
c# Как мне выполнить код формы заново?
    #38225282
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

Анна, а не проще ли использовать BindingList<T>, тогда вообще ни чего обновлять будет не нужно, ListBox или ListView сами обновятся.
...
Рейтинг: 0 / 0
c# Как мне выполнить код формы заново?
    #38225348
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesа не проще ли использовать BindingList<T>
Используй, кто запрещает. Тебе возвращают универсальный IEnumerable, его можно обвязать во что угодно.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# Как мне выполнить код формы заново?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]