Golden Basim Ответов: 1

Почему форма висит на входе фокуса ?


привет,
у меня xtraform (на управление филиалом ), который содержит несколько входов и GridView.
после загрузки формы я могу сфокусировать любой ввод (пример:- CodeInput.Текст )без проблем. но когда я нажимаю кнопку EditGridbtnREP , входные данные заполнены данными.

пожалуйста, обратите внимание: существует связь между ad_branches таблица и многие другие таблицы.

когда я снова фокусирую какие-либо входы , форма зависает и занимает 2-3 минуты. откликнуться.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using DevExpress.XtraSplashScreen;
using MrSales.MrSLanguages;
using MrSales.MrSModels;
using System.Data.Entity;
using System.Runtime.InteropServices;

namespace MrSales.MrSViews.CompanyConfig
{
    public partial class ManageBranches : DevExpress.XtraEditors.XtraForm
    {
        public int ID = 0;
        public ManageBranches()
        {

            SplashScreenManager.CloseForm(false);

            SplashScreenManager.ShowForm(this, typeof(waitForm), true, true, false);
            try { SplashScreenManager.Default.SetWaitFormDescription(strings.Creating_basic_components); } catch { }


            InitializeComponent();


            mrsalesdbEntities dbContext = ConnectionTools.OpenConn();
            try{ SplashScreenManager.Default.SetWaitFormDescription(strings.loading_branches_list); } catch { }
            ad_branchesBindingSource.DataSource = dbContext.ad_branches.ToList();   


            try { SplashScreenManager.Default.SetWaitFormDescription(strings.LOADING_company_data); } catch { }
            ad_company_dataBindingSource.DataSource = dbContext.ad_company_data.Local.ToBindingList();


            try { SplashScreenManager.Default.SetWaitFormDescription(strings.loading_Countries_Cities); } catch { }
            ad_countryBindingSource.DataSource = dbContext.ad_country.ToList();
            ad_cityBindingSource.DataSource = dbContext.ad_city.ToList();



        }
        //to drag form
        const int HT_CAPTION = 0x2;
        const int WM_NCLBUTTONDOWN = 0xA1;

        [DllImportAttribute("user32.dll")]
        public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
        [DllImportAttribute("user32.dll")]
        public static extern bool ReleaseCapture();



        private void ManageBranches_Load(object sender, EventArgs e)
        {
            
            SplashScreenManager.Default.SetWaitFormDescription(strings.loading_interface);

            //Func to Load All Basic And Requires Design Varibles 
            MrSControls.FormLoad.PublicDesign(this);
            CompanyInput.EditValue = 1;

            SplashScreenManager.CloseForm(false); 
        }

        private void CloseFrmBtn_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void HeaderPanel_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                ReleaseCapture();
                SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
            }
        }

        private void EditGridbtnREP_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {

            ID = Convert.ToInt32(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "branche_ID"));
            CompanyInput.EditValue = Convert.ToInt32(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "comp_ID"));
            CodeInput.Text = Convert.ToString(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "branche_Code"));
            NameInput.Text = Convert.ToString(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "branche_Name"));
            StatusToggle.EditValue = Convert.ToInt32(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "branche_Status")) == 0 ? false : true;
            Mobile1Input.Text = Convert.ToString(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "branche_Mobile1"));
            Mobile2Input.Text = Convert.ToString(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "branche_Mobile2"));
            Mobile3Input.Text = Convert.ToString(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "branche_Mobile3"));
            PhoneInput.Text = Convert.ToString(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "branche_Phone"));
            AddressInput.Text = Convert.ToString(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "branche_Address"));
            CountryInput.EditValue = Convert.ToInt32(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "Country"));
            CityInput.EditValue = Convert.ToInt32(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "City"));
        }
    }
}


Что я уже пробовал:

я создал новую форму и скопировал элементы управления один за другим, и проблема все еще существует

я попытался прокомментировать коды один за другим, но та же проблема

SplashScreenManager.CloseForm(false);

           SplashScreenManager.ShowForm(this, typeof(waitForm), true, true, false);
           try { SplashScreenManager.Default.SetWaitFormDescription(strings.Creating_basic_components); } catch { }


           InitializeComponent();


           mrsalesdbEntities dbContext = ConnectionTools.OpenConn();
           try{ SplashScreenManager.Default.SetWaitFormDescription(strings.loading_branches_list); } catch { }
           ad_branchesBindingSource.DataSource = dbContext.ad_branches.ToList();


           try { SplashScreenManager.Default.SetWaitFormDescription(strings.LOADING_company_data); } catch { }
           ad_company_dataBindingSource.DataSource = dbContext.ad_company_data.Local.ToBindingList();


           try { SplashScreenManager.Default.SetWaitFormDescription(strings.loading_Countries_Cities); } catch { }
           ad_countryBindingSource.DataSource = dbContext.ad_country.ToList();
           ad_cityBindingSource.DataSource = dbContext.ad_city.ToList();

BillWoodruff

Есть ли сообщение об ошибке ? Вы пробовали поддержку DevXpress ?

Если контроль действительно возвращается, через несколько минут вам нужно посмотреть, что происходит с базой данных, возможно, написать какой-то код регистрации.

1 Ответов

Рейтинг:
2

Gerry Schmitz

Цитата:
я попытался прокомментировать коды один за другим, но та же проблема


Продолжайте комментировать. Вы загружаете много вещей в конструктор. Вы говорите, что проблема возникает после "щелчка": вы также возитесь с мышью. Очень много "брызг". Странный способ загрузки полей ввода данных (по сравнению с синхронизацией с текущим элементом в источнике данных).

Я обещаю, что в какой-то момент не будет "никаких проблем" (когда вы закончите комментировать).

Или же вы можете "использовать отладчик".