ايران ويج

نسخه‌ی کامل: انتقال اطلاعات جستجو شده
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام
من هم همین مشکل و دارم ..... دکمه جستوجو رو میزنم فرم 2 بالا میاد دستور slect خودم و تو غرم دوم درست میکنم ارسالش میکنم به فرم 1 ...بعد اطلاعات و تو گرید میریزم.... ولی مشکل این جاست که وقتی من دکمه جستوجورو میزنم فراین اجرا میشه ... فرم دو بالا میاد کاربر هنوز اطلاعات و ارد نکرده ولی اون پشت تو فرم یک همه فرامین دکمه جستوجو اجرا شده و به پایان میرسه ... قبل اینکه کاربر اطلاعات و وارد کنه ... یعنی داخل دکمه جستوجو دستورات بعد ایجاد فرم 2 منطزر بسته شدن فرم دو نمی مونن..... لطفاً کمک کنید .... اگه میشه جواب و به ایمیلم بفرستید m.n0uri@yahoo.com در ضمن تو آدرس میلم به جای حرف O از صفر استفاده شده
ممنون
(۰۹-مرداد-۱۳۹۲, ۱۶:۵۳:۱۹)m.n0uri نوشته است: [ -> ]اگه میشه جواب و به ایمیلم بفرستید m.n0uri@yahoo.com در ضمن تو آدرس میلم به جای حرف O از صفر استفاده شده

چیز دیگه نمیخوای؟
چلو کبابی؟ مانیکوری؟
خوشحال شدم ... با خودم گفتم په زود جواب میدن .... نه ممنون ... فک نکنم از گلوم پایین بره

شاید منظورم و خوب نتونستم بیان کنم ببینین
من برنامه نوشتم که تو فرم اصلي يعني فرم 1 يه ديتاگريد هستش با يه دکمه جستجو .... من ميخوام وقتي دکمه جستجو رو ميزنم يه فرم mdi بازشه(فرم فرزند) که توش يه تکست باکسه با يه دکمه براي دريافت اطلاعات از تکست باکس .... تويه اين دکمه دريافت اطلاعات من دستور select خودم و ايجاد ميکنم و اونو از طريق يه متغير ايستا به فرم 1 ميفرستم و فرم 2 رو يبندم .... فرم 1 که از طريق دکمه جستجو فرم 2رو باز کرده بايد اين دستور select و بگير و تو همن دکمه جستجو داده هارو از ديتابيس بازيابي بکنه و به ديتاگريد بده ..... خوب ولي وقتي کاربر دکمه جستجورو ميزنه فرم 2 بازميشه اينجا بايد دستورات داخل دکمه جستجو اجرا نشن تا فرم 2 بسته شه ولي اين کار انجام نميشه يعني فرم 2 باز ميشه و بقيه دستورات هم بعد اون اجرا ميشن و رويداد کليک دکمه جستجو به اتمام ميرسه قبل اينکه فرم 2 بسته بشه و کاربر اطلاعات و وارد کرده باشه .. پس در نتيجه جستجو هم انجام نميشه ؟
(۰۹-مرداد-۱۳۹۲, ۱۸:۴۸:۲۳)m.n0uri نوشته است: [ -> ]خوشحال شدم ... با خودم گفتم په زود جواب میدن .... نه ممنون ... فک نکنم از گلوم پایین بره

جواب برای کسی میل نمیشه دوستم باید همینجا پیگیر باشید!
من متوجه نشدم مشکلت چی هست دقیقا!اگه ممکنه کدتون راب زارید تا برسی کنن دوستان
برای انتقال اطلاعات بین فرم ها میتونید نتیجه جستجوتون رو بریزید توی یک شی... اگر ado.net سنتی استفاده میکنید توی datatabel بریز اگه linq to sql یا entity framewor استفاده میکنی بریز توی list of... بعد دیگه با این شیه میتونی همه کار کنی توی همین فرم نمایش بدی یا بریزیش توی خصوصت tag فرم دوم و توی فرم دومت از tag بخونیش و نمایشش بدی...

این فرم 1 که که من ساختم و اینم کدشه ( عکسارو پیوست کردم)
کد:
public partial class RibbonForm1 : DevExpress.XtraBars.Ribbon.RibbonForm
    {
        OleDbConnection con;
        OleDbDataAdapter da;
        DataSet ds = new DataSet();
        DataRow dr;
        OleDbCommandBuilder cb;
        OleDbCommand com;
        string s1;
        static public string s2;
        
        public void enabledfrm1()
        {
            this.Enabled = true;
        }
        
        public RibbonForm1()
        {
            InitializeComponent();
        }

        private void btn_search_Click(object sender, EventArgs e)
        {
            SplashScreen2 frm1 = new SplashScreen2();
            frm1.Show();
            [color=#FF0000]this.Enabled = false;
            con = new OleDbConnection(s1);
            con.Open();            
            da = new OleDbDataAdapter(s2, con);
            ds.Clear();
            da.Fill(ds, "sabt");
            grid1.DataBindings.Clear();
            grid1.DataBindings.Add(new Binding("datasource", ds, "sabt"));[/color]
        }

        private void RibbonForm1_Load(object sender, EventArgs e)
        {
            s2 = Application.StartupPath.ToString() + @"\bas" + @"\sabt.accdb";
            s1 = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + s2;
        }
    }
}

واین هم فرو دوم من هستش که با زدن دکمه جستجو تو فرم 1 بالا میاد و خود فرم 1 غیرفعال میشه


و اینم کد فرم 2 هستش
کد:
public partial class SplashScreen2 : SplashScreen
    {
        public SplashScreen2()
        {
            InitializeComponent();
        }

        #region Overrides

        public override void ProcessCommand(Enum cmd, object arg)
        {
            base.ProcessCommand(cmd, arg);
        }

        #endregion

        public enum SplashScreenCommand
        {
        }

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

        private void btn_search_Click(object sender, EventArgs e)
        {
            RibbonForm1.s2 = "select * from sabt where txt_name='" + txt_sherch.Text.ToString().Trim() + "'";
            this.Close();
        }

من از طریق یه رشته که بصورت استاتیک تعریف شده دستور جستجو خودم و به فرم 1 انتقال میدم .....اینکار به وسیله دکمه جستجو تو غرم 2 انجام میشه ..... ولی قبل این که کار بر اطلاعات و وارد کنه و دکمه جستجو روا که بزنه ما بقی کد تو فرم 1 بطور خود کار اجرا میشه یعنی این کدها که با رنگ قرمز نوشتم ............. من میخوام این کدا ها تا زمانی که فرم 2 بسته نشده اجرا نشن ..... در ضمن فرم 1 من با باز شدن فرم 2 غیر فعال میشه میخوام که با بسته شدن فرم 2 فرم 1 دوباره فعال بشه
نقل قول: من از طریق یه رشته که بصورت استاتیک تعریف شده دستور جستجو خودم و به فرم 1 انتقال میدم .....اینکار به وسیله دکمه جستجو تو غرم 2 انجام میشه ..... ولی قبل این که کار بر اطلاعات و وارد کنه و دکمه جستجو روا که بزنه ما بقی کد تو فرم 1 بطور خود کار اجرا میشه یعنی این کدها که با رنگ قرمز نوشتم ............. من میخوام این کدا ها تا زمانی که فرم 2 بسته نشده اجرا نشن ..... در ضمن فرم 1 من با باز شدن فرم 2 غیر فعال میشه میخوام که با بسته شدن فرم 2 فرم 1 دوباره فعال بشه
سلام دوست عزیز خب همین کدایی که نوشتی هم میتونن بهت جواب بدن فقط این نکاتو که میگم رعایت کن تا جواب بگیری :
نقل قول: من میخوام این کدا ها تا زمانی که فرم 2 بسته نشده اجرا نشن ..... در ضمن فرم 1 من با باز شدن فرم 2 غیر فعال میشه میخوام که با بسته شدن فرم 2 فرم 1 دوباره فعال بشه
این تکه کدیه که شما نوشتی :

کد:
SplashScreen2 frm1 = new SplashScreen2();
frm1.Show();
this.Enabled = false;

که باید به این تغییر کنه :


کد:
SplashScreen2 frm1 = new SplashScreen2();
frm1.ShowDialog();

و در فرم دو شما اومدی فرم یک رو فعال کردی که دیگه لازم نیست.پس اون هم حذف کن.وقتی فرمتو با showdialog باز کنی همونی میشه که میخوای.برنامت تا خطی اجرا میشه که فرم باز شده ، فرم بالای بقیه فرم ها باز میشه و فرم های پشتش از دسترس خارج میشن و وقتی فرم بالایی بسته میشه دستورات بعد از فراخوانی فرم اجرا میشن....(دقیقا مثل نشون دادن messagebox)
موفق باشید.
صفحه‌ها: 1 2