نمایش نتایج 1 تا 14 از 14

نام تاپیک: چطور میشه تا زمانی که کلیه اطلاعات در فرم وارد نشده دکمه next فعال نشه ؟

  1. #1

    چطور میشه تا زمانی که کلیه اطلاعات در فرم وارد نشده دکمه next فعال نشه ؟

    با عرض سلام خدمت مهندسان عزیز و زحمت کش.
    خواستم بپرسم چطوری میتونیم تا زمانی که کلیه اطلاعات در فرم وارد نشده دکمه next فعال نشه؟

    ممنون میشم منو راهنمایی کنید.

  2. #2
    کاربر دائمی آواتار aghayex
    تاریخ عضویت
    دی 1388
    محل زندگی
    https://telegram.me/Sed_kazem18
    پست
    924

    نقل قول: چطور میشه تا زمانی که کلیه اطلاعات در فرم وارد نشده دکمه next فعال نشه ؟

    اگه من باشم این کار رو انجام نمی دم اما برای این کار شما در رویداد تکست چنج باید تمام مقادیر تکس باکس هات رو چک کنی و اگه همه خالی بودن متد Enable دکمت رو فالس و در غیر این صورت ترو کنی

  3. #3
    کاربر دائمی آواتار Davidd
    تاریخ عضویت
    آذر 1392
    محل زندگی
    تهران
    پست
    391

    نقل قول: چطور میشه تا زمانی که کلیه اطلاعات در فرم وارد نشده دکمه next فعال نشه ؟

    سلام
    اگه منظور از اطلاعات، TextBox هستند، يه راهش اينه كه رخداد TextChange تمام TextBoxهارو به يه متد وصل كني. براي اين كار تمام TextBoxهارو انتخاب كن و از قسمت eventها رخداد TextChange انتخاب كن. تو اين متد چك ميكني اگه تمام فيلدها پر بودند باتن فعال بشه. براي انكار لازم نيست نام تمام TextBoxهارو بنويسي، كالكشن Controls ليست تمام كنترل هاي روي فرم داره و ميتوني از foreach روي Controls براي پيدا كردن TextBox ها و چك كردن متن آنها استفاده كني. اگه توي كدش مشكل داري راهنمايي كنم.

  4. #4

    نقل قول: چطور میشه تا زمانی که کلیه اطلاعات در فرم وارد نشده دکمه next فعال نشه ؟

    از دوستان مهندس ممنونم. حقیقتا خیلی حرفه ای توضیح دادید.اگه امکان داره که کد یه مدل کوچک شده برنامه رو بذارید ممنون میشم.مثلا دوتاپنجره تعریف کنید و دوتا تکس باکس هم بذارید و یه دکمه next.
    با کمال سپاس و تشکر.

  5. #5

    نقل قول: چطور میشه تا زمانی که کلیه اطلاعات در فرم وارد نشده دکمه next فعال نشه ؟

    نقل قول نوشته شده توسط aghayex مشاهده تاپیک
    اگه من باشم این کار رو انجام نمی دم اما برای این کار شما در رویداد تکست چنج باید تمام مقادیر تکس باکس هات رو چک کنی و اگه همه خالی بودن متد Enable دکمت رو فالس و در غیر این صورت ترو کنی
    مهندس چرا شما همچین کاری رو نمیکردید؟ عیب این کار کجاست؟و اینکه چه راهی رو پیشنهاد می کنید؟

  6. #6
    کاربر دائمی آواتار aghayex
    تاریخ عضویت
    دی 1388
    محل زندگی
    https://telegram.me/Sed_kazem18
    پست
    924

    نقل قول: چطور میشه تا زمانی که کلیه اطلاعات در فرم وارد نشده دکمه next فعال نشه ؟

    این کار کلاس کار رو بالا می بره اما توجه داشته باش من 10 الی 20 تا تکس باکس دارم که در اون متد باید پر بودنش رو چک کنم حالا کاربر هر موقع نوشته رو تغییر بده باید تمام اینها اجرا بشه . به نظر من نیاز نیس اما برای بیشتر دوستان نیاز هست و فرم رو شکیل می کنه .
    خوب این هم یه نظره

  7. #7

    نقل قول: چطور میشه تا زمانی که کلیه اطلاعات در فرم وارد نشده دکمه next فعال نشه ؟

    نقل قول نوشته شده توسط aghayex مشاهده تاپیک
    این کار کلاس کار رو بالا می بره اما توجه داشته باش من 10 الی 20 تا تکس باکس دارم که در اون متد باید پر بودنش رو چک کنم حالا کاربر هر موقع نوشته رو تغییر بده باید تمام اینها اجرا بشه . به نظر من نیاز نیس اما برای بیشتر دوستان نیاز هست و فرم رو شکیل می کنه .
    خوب این هم یه نظره
    آها که این طور . اوکی.ممنون مهندس.

  8. #8

    نقل قول: چطور میشه تا زمانی که کلیه اطلاعات در فرم وارد نشده دکمه next فعال نشه ؟

    نقل قول نوشته شده توسط deldadeh108 مشاهده تاپیک
    سلام
    اگه منظور از اطلاعات، TextBox هستند، يه راهش اينه كه رخداد TextChange تمام TextBoxهارو به يه متد وصل كني. براي اين كار تمام TextBoxهارو انتخاب كن و از قسمت eventها رخداد TextChange انتخاب كن. تو اين متد چك ميكني اگه تمام فيلدها پر بودند باتن فعال بشه. براي انكار لازم نيست نام تمام TextBoxهارو بنويسي، كالكشن Controls ليست تمام كنترل هاي روي فرم داره و ميتوني از foreach روي Controls براي پيدا كردن TextBox ها و چك كردن متن آنها استفاده كني. اگه توي كدش مشكل داري راهنمايي كنم.
    مهندس ظاهرا دوست ندارید منو راهنمایی کنید؟!!!
    خوش به حال خودتون که بلدید و این چیزا اینقدر براتون پیش پا افتاده هست که دیگه حوصلتون نمیشه جواب بدید.اوکی مرسی.

  9. #9
    کاربر دائمی آواتار Davidd
    تاریخ عضویت
    آذر 1392
    محل زندگی
    تهران
    پست
    391

    نقل قول: چطور میشه تا زمانی که کلیه اطلاعات در فرم وارد نشده دکمه next فعال نشه ؟

    نقل قول نوشته شده توسط rospina_63 مشاهده تاپیک
    مهندس ظاهرا دوست ندارید منو راهنمایی کنید؟!!!
    خوش به حال خودتون که بلدید و این چیزا اینقدر براتون پیش پا افتاده هست که دیگه حوصلتون نمیشه جواب بدید.اوکی مرسی.
    دوست عزيز راه بهتر و ساده تر اينه كه وقتي كاربر روي دكمه كليك كرد تمام فيلدهارو چك كني و اگه خالي بودن يه پيغام به كاربر نشون بدي.
    حالا اگه اصرار داري دكمه غيرفعال باشه event TextChange تمام TextBox ها رو به اين متد وصل كن (با همون روشي كه گفتم)

        private void textBox1_TextChanged(object sender, EventArgs e)
    {
    foreach (var cntr in this.Controls)//control haye rooye form
    {
    if (cntr is TextBox )
    {
    if ((cntr as TextBox).Text.Trim() == "") //agar control TextBox ast va Text an khaali ast
    return;//agar yek TextBox khali bood Return anjam mishavad
    }
    }

    Button1.Enabled = true;
    }

    پ.ن : this به فرم جاري اشاره مي كند و Button1 همون دكمه مفروض است.

  10. #10

    نقل قول: چطور میشه تا زمانی که کلیه اطلاعات در فرم وارد نشده دکمه next فعال نشه ؟

    بسم الله الرحمن الرحیم.
    سلام.
    بهترین روشی که من بهتون پیشنهاد میکنم اینه که از DataBinding استفاده کنید این عمل علاوه بر کارایی بهتر خوانایی برنامه شما رو هم بهتر میکنه:
    توی فرمتون یه دکمه و دو کادر متن اضافه کنید:
    public partial class Form1 : Form, INotifyPropertyChanged
    {
    public Form1()
    {
    InitializeComponent();
    this.DataBindings.Add(new Binding("TextName", textBox1, "Text"));
    this.DataBindings.Add(new Binding("TextAddress", textBox2, "Text"));
    button1.DataBindings.Add(new Binding("Enabled", this, "CanExecuteCommand"));
    }
    private string _TextName;
    public string TextName
    {
    get { return _TextName; }
    set { _TextName = value; OnPropertyChanged("CanExecuteCommand"); }
    }

    string _TextAddress;

    public string TextAddress
    {
    get { return _TextAddress; }
    set { _TextAddress = value; OnPropertyChanged("CanExecuteCommand"); }
    }

    public bool CanExecuteCommand
    {
    get { return !(String.IsNullOrEmpty(TextName) || String.IsNullOrEmpty(TextAddress)); }
    }

    public void OnPropertyChanged(string valueName)
    {
    if (PropertyChanged != null)
    PropertyChanged(this, new PropertyChangedEventArgs(valueName));
    }

    public event PropertyChangedEventHandler PropertyChanged;
    }


    موفق باشید.

  11. #11

    نقل قول: چطور میشه تا زمانی که کلیه اطلاعات در فرم وارد نشده دکمه next فعال نشه ؟

    نقل قول نوشته شده توسط deldadeh108 مشاهده تاپیک
    دوست عزيز راه بهتر و ساده تر اينه كه وقتي كاربر روي دكمه كليك كرد تمام فيلدهارو چك كني و اگه خالي بودن يه پيغام به كاربر نشون بدي.
    حالا اگه اصرار داري دكمه غيرفعال باشه event TextChange تمام TextBox ها رو به اين متد وصل كن (با همون روشي كه گفتم)

        private void textBox1_TextChanged(object sender, EventArgs e)
    {
    foreach (var cntr in this.Controls)//control haye rooye form
    {
    if (cntr is TextBox )
    {
    if ((cntr as TextBox).Text.Trim() == "") //agar control TextBox ast va Text an khaali ast
    return;//agar yek TextBox khali bood Return anjam mishavad
    }
    }

    Button1.Enabled = true;
    }

    پ.ن : this به فرم جاري اشاره مي كند و Button1 همون دكمه مفروض است.
    مهندس عزیز من راهی رو که فرمودید رفتم متاسفانه نتونستم عملیش کنم. ظاهرا یه ذره برا من سخته.

    میشه خواهش کنم اون راهی رو که خودتون مد نظرتونه (راه بهتر و ساده تر اينه كه وقتي كاربر روي دكمه كليك كرد تمام فيلدهارو چك كني و اگه خالي بودن يه پيغام به كاربر نشون بدي) توضیح بدهید؟
    نمیدونم کدش رو چطوری بنویسم که این کار رو انجام بدم.
    با کمال تشکر و سپاس فراوان

  12. #12

    نقل قول: چطور میشه تا زمانی که کلیه اطلاعات در فرم وارد نشده دکمه next فعال نشه ؟

    نقل قول نوشته شده توسط Hamishebahar مشاهده تاپیک
    بسم الله الرحمن الرحیم.
    سلام.
    بهترین روشی که من بهتون پیشنهاد میکنم اینه که از DataBinding استفاده کنید این عمل علاوه بر کارایی بهتر خوانایی برنامه شما رو هم بهتر میکنه:
    توی فرمتون یه دکمه و دو کادر متن اضافه کنید:
    [CSHARP]public partial class Form1 : Form, INotifyPropertyChanged
    {
    public Form1()
    {

    موفق باشید.
    با عرض سلام خدمت شما مهندس عزیز.
    خواستم از شما تشکر کنم که به سوال من پاسخ دادید و اینکه راهی رو که فرمودید رفتم و جواب داد ولی یه مشکل دیگه که دارم اینه که نمیدونم برا تکس باکسهای بیشتر از 2تا چطوری بسطش بدم. من کد رو براتون میذارم ببینید مشکل کارم کجاست. ممنونم.

    public
    partialclassForm1 : Form, INotifyPropertyChanged
    {
    public Form1()

    {
    InitializeComponent();
    this.DataBindings.Add(newBinding("TextName", textBox1, "Text"));
    this.DataBindings.Add(newBinding("TextAddress", textBox2, "Text"));
    this.DataBindings.Add(newBinding("TextAddress", textBox3, "Text"));

    button1.DataBindings.Add(
    newBinding("Enabled", this, "CanExecuteCommand"));
    }
    publicDouble a, b, c, d;
    privatestring _TextName;
    publicstring TextName

    {
    get { return _TextName; }
    set { _TextName = value; OnPropertyChanged("CanExecuteCommand"); }

    }
    string _TextAddress;

    publicstring TextAddress

    {

    get { return _TextAddress; }

    set { _TextAddress = value; OnPropertyChanged("CanExecuteCommand"); }

    }

    publicbool CanExecuteCommand

    {
    get { return !(String.IsNullOrEmpty(TextName) || String.IsNullOrEmpty(TextAddress)); }

    }
    publicvoid OnPropertyChanged(string valueName)

    {
    if (PropertyChanged != null)

    PropertyChanged(
    this, newPropertyChangedEventArgs(valueName));

    }

    publiceventPropertyChangedEventHandler PropertyChanged;

    privatevoid button1_Click(object sender, EventArgs e)

    {

    panel1.Visible =
    true;

    a=
    Double.Parse(textBox1.Text);

    b=
    Double.Parse(textBox2.Text);

    c =
    Double.Parse(textBox3.Text);

    d=(a+b)*c;

    textBox4.Text = d.ToString();

    }

  13. #13

    نقل قول: چطور میشه تا زمانی که کلیه اطلاعات در فرم وارد نشده دکمه next فعال نشه ؟

    یه روش دیگه هم که میتونید استفاده کنید این هست که اگه کاربر تمام فیلد ها رو پر نکرد یه پیام خطایی به کاربر نشون داده بشه. در غیر اینصورت یعنی تکمیل کامل فیلدها کاربر بتونه به قسمت بعدی بره.

    کدش هم خیلی ساده است

    در رخداد کلیک باتنتون این کدها رو بنویسید.



    if (textBox1.Text != "" && textBox2.Text != "" && textBox3.Text != "" && textBox4.Text != "")
    {
    //رفتن به صفحه بعدی
    }
    else
    {
    messagebox.show("کاربر گرامی لطفا فیلدهای مربوطه را کامل نمایید سپس بر روی ثبت اطلاعات کلیک نمایید");
    }

    برای هرچندتا تکست باکس هم می تونید استفاده کنید.

  14. #14

    نقل قول: چطور میشه تا زمانی که کلیه اطلاعات در فرم وارد نشده دکمه next فعال نشه ؟

    از مهندسای گلم تشکر میکنم.دستتون درد نکنه. تونستم درستش کنم. سایت فوق العاده ای دارید.
    من تو این سایت 3 تا پست گذاشتم و 2تاشو تو کمتر از نصف روز به سوالم جواب داده شد. و این عالیه.
    امیدوارم خدا همیشه شما رو تو تمام مراحل زندگیتون موفق کنه.
    سایت خیلی خوبی داریم. واقعا از همتون و به ویژه باعث و بانی این سایت تشکر میکنم. خدا خیرتون بده.
    آخرین ویرایش به وسیله rospina_63 : چهارشنبه 31 اردیبهشت 1393 در 10:34 صبح

تاپیک های مشابه

  1. سوال: چطور میشه یک آی پی رو ping کرد و مشخص بشه اون سرور فعال هست
    نوشته شده توسط sajadzare در بخش C#‎‎
    پاسخ: 3
    آخرین پست: دوشنبه 23 دی 1392, 11:12 صبح
  2. سوال: چطور میشه یک رکورد خاص رو تو ساب فرم غیر فعال کرد؟
    نوشته شده توسط mmbguide در بخش Access
    پاسخ: 4
    آخرین پست: دوشنبه 25 شهریور 1392, 07:55 صبح
  3. چطور میشه اطلاعات بانک رو به صورت کد درآورد
    نوشته شده توسط Armin62 در بخش برنامه نویسی در 6 VB
    پاسخ: 6
    آخرین پست: سه شنبه 30 آبان 1385, 10:43 صبح
  4. قرار دهی اطلاعات در حافظه RAM (چطور میشه ؟)
    نوشته شده توسط mkbo_webmaster در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: یک شنبه 07 خرداد 1385, 12:07 عصر
  5. چطور میشه اطلاعات رو بین C#‎.net و Excel ردوبدل کرد
    نوشته شده توسط inezarat در بخش C#‎‎
    پاسخ: 3
    آخرین پست: سه شنبه 02 اسفند 1384, 16:04 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •