Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2021, 15:36   #1
Ruslan Alekseev
Новичок
Джуниор
 
Регистрация: 22.04.2021
Сообщений: 1
По умолчанию Работа с формами C#

Здравствуйте, столкнулся с проблемой. Допустим, существует форма InsertTransactions в которой присутствуют текстовые поля и кнопки. А также существует форма DataBaseClients в которой существует лист с данными подключенная к б.д. и кнопка btnEdit_Click. При выборе нужной строки в листе б.д. данные должны заноситься в текстовые поля формы InsertTransactions. Но при этом открывается еще одна форма InsertTransactions. Как сделать так, чтобы данные заносились в уже открытую форму InsertTransactions, а не создавала новую.
Код формы InsertTransactions:
Код:
...
namespace RealEstateAgency.Forms_of_action
{
    public partial class InsertTransactions : Form
    {
        private SqlConnection sqlConnection = null;
        private int id;
        public InsertTransactions(SqlConnection connection, int id)
        {
            InitializeComponent();
            sqlConnection = connection;
            this.id = id;
            this.ControlBox = false;
            this.MaximizedBounds = Screen.FromHandle(this.Handle).WorkingArea;
            textBox1.Enabled = false;
        }
        [DllImport("user32.DLL", EntryPoint = "ReleaseCapture")]
        private extern static void ReleaseCapture();
 
        [DllImport("user32.DLL", EntryPoint = "SendMessage")]
        private extern static void SendMessage(System.IntPtr hWnd, int wMsg, int wParam, int lParam);
 
        private void button2_Click(object sender, EventArgs e)
        {
            Close();
        }
 
        private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            ReleaseCapture();
            SendMessage(this.Handle, 0x112, 0xf012, 0);
        }
 
        private void btnDelete_Click(object sender, EventArgs e)
        {
            Close();
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
            Data_Base.DataBaseClients dataBaseClient = new Data_Base.DataBaseClients();
            dataBaseClient.Show();
        }
 
        private async void InsertTransactions_Load(object sender, EventArgs e)
        {
            SqlCommand getClientsInfoCommand = new SqlCommand("SELECT [Surname], [Name], [MiddleName], [Budget], [Area], [Rooms], [Floor], [Sqaure], [Email] FROM [Clients] WHERE [Id]=@Id", sqlConnection);
            getClientsInfoCommand.Parameters.AddWithValue("Id", id);
            SqlDataReader sqlReader = null;
            try
            {
                sqlReader = await getClientsInfoCommand.ExecuteReaderAsync();
                while (await sqlReader.ReadAsync())
                {
                    textBox4.Text = Convert.ToString(sqlReader["Surname"]) + " " + Convert.ToString(sqlReader["Name"]) + " " + Convert.ToString(sqlReader["MiddleName"]);
                    textBox5.Text = Convert.ToString(sqlReader["Budget"]);
                    textBox6.Text = Convert.ToString(sqlReader["Area"]);
                    textBox7.Text = Convert.ToString(sqlReader["Rooms"]);
                    textBox8.Text = Convert.ToString(sqlReader["Floor"]);
                    textBox9.Text = Convert.ToString(sqlReader["Sqaure"]);
                    textBox10.Text = Convert.ToString(sqlReader["Email"]);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                if (sqlReader != null && !sqlReader.IsClosed)
                    sqlReader.Close();
            }
        }
    }
}
Код формы DataBaseClients:
Код:
...
 
namespace RealEstateAgency.Data_Base
{
    public partial class DataBaseClients : Form
    {
        private SqlConnection sqlConnection;
        private List<string[]> rows = new List<string[]>();
        private List<string[]> filteretedList = null;
        public DataBaseClients()
        {
            InitializeComponent();
            this.ControlBox = false;
            this.MaximizedBounds = Screen.FromHandle(this.Handle).WorkingArea;
        }
        [DllImport("user32.DLL", EntryPoint = "ReleaseCapture")]
        private extern static void ReleaseCapture();
 
        [DllImport("user32.DLL", EntryPoint = "SendMessage")]
        private extern static void SendMessage(System.IntPtr hWnd, int wMsg, int wParam, int lParam);
 
        private async void DataBaseClients_Load(object sender, EventArgs e)
        {
            try
            {
               ...
        }
 
        private void DataBaseClients_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (sqlConnection != null && sqlConnection.State != ConnectionState.Closed)
                sqlConnection.Close();
        }
 
        private async Task LoadClientsAsync()
        {
            SqlDataReader sqlReader = null;
            string[] row = null;
            SqlCommand getClientsCommand = new SqlCommand("SELECT * FROM [Clients]", sqlConnection);
            try
            {
                sqlReader = await getClientsCommand.ExecuteReaderAsync();
                while (await sqlReader.ReadAsync())
                {
                    row = new string[]
                    {
                        Convert.ToString(sqlReader["Id"]),
                        Convert.ToString(sqlReader["Surname"]),
                        Convert.ToString(sqlReader["Name"]),
                        Convert.ToString(sqlReader["MiddleName"]),
                        Convert.ToString(sqlReader["Budget"]),
                        Convert.ToString(sqlReader["Area"]),
                        Convert.ToString(sqlReader["Rooms"]),
                        Convert.ToString(sqlReader["Floor"]),
                        Convert.ToString(sqlReader["Sqaure"]),
                        Convert.ToString(sqlReader["Email"])
                    };
                    rows.Add(row);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                if (sqlReader != null && !sqlReader.IsClosed)
                {
                    sqlReader.Close();
                }
            }
            RefreshList(rows);
        }
 
        private void RefreshList(List<string[]> list)
        {
            listView1.Items.Clear();
            foreach (string[] s in list)
            {
                listView1.Items.Add(new ListViewItem(s));
            }
        }
 
        private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            ReleaseCapture();
            SendMessage(this.Handle, 0x112, 0xf012, 0);
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            Close();
        }
 
        private void btnEdit_Click(object sender, EventArgs e)
        {
            if (listView1.SelectedItems.Count > 0)
            {
                Forms_of_action.InsertTransactions update = new Forms_of_action.InsertTransactions(sqlConnection, Convert.ToInt32(listView1.SelectedItems[0].SubItems[0].Text));
                update.Show();
            }
            else
            {
                MessageBox.Show("Ни одна строка не была выделена!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    }
}
Ruslan Alekseev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с формами Ksenia177 Паскаль, Turbo Pascal, PascalABC.NET 1 10.12.2013 21:48
Работа с Формами KsyFka Общие вопросы Delphi 1 15.05.2011 22:48
Работа с формами Claster Общие вопросы Delphi 11 01.02.2010 17:09
работа с формами Graggis1 Microsoft Office Access 4 17.08.2009 18:14