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

نام تاپیک: دسترسی به اشیاء یک فرم

  1. #1
    کاربر دائمی آواتار mohsen_f_b
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تهران
    سن
    34
    پست
    401

    Post دسترسی به اشیاء یک فرم

    سلام
    چطوری می تونم به اشیاء یک فرم از یک فرم دیگه دسترسی پیدا کنم؟

    باتشکر

  2. #2
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736

    نقل قول: دسترسی به اشیاء یک فرم

    نقل قول نوشته شده توسط mohsen_f_b مشاهده تاپیک
    سلام
    چطوری می تونم به اشیاء یک فرم از یک فرم دیگه دسترسی پیدا کنم؟

    باتشکر
    روش درستش این است که دستیابی نکنید.
    به جایه دست انداختن به اعضایه یک شئی دیگر (در این مورد یک شئی دیگر فرم دیگر است)، از اون فرم درخواست کنید که مقادیر را یا ازتان بگیرد و در عضوش (تکست باکس، داتاگرید...هرچی) نشان بده.
    مواظب جوابهایه اشتباه که میگند خاصیت Modifier اون کنترلی که میخوای اطلاعاتت توش برگرده رو به internal و یا public تغیر بده باش.
    بدترین روش استفاده از یک کلاس و یا فیلد استاتیک است، برایه ذخیره کردن مانند یک متغییر سراسری استفاده میشه و روش واقعا سطح پائیینی است که استفاده‌ نکردن ازش خیلی بهتر است.
    یا یک متد در فرمت بساز که هرکی که صداش زد کارهایه داخلیش را خودش انجام بده و یا اینکه تبدیل به یک پروپرتیش کن و دوباره کارهایه داخلی فرم را در خود همان فرم انجام بدید. اینکه اعضا همینطوری قابل دسترسی باشند روش اشتباهی است.
    استادها در همین مورد مقالاتی در همین تالار دارند.

    مثال بسیار ساده که از روشهایه درست برنامه‌نویسی استفاده میکند ضمیمه کردم.
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله اَرژنگ : جمعه 20 شهریور 1388 در 08:48 صبح

  3. #3
    کاربر دائمی
    تاریخ عضویت
    تیر 1388
    محل زندگی
    تهران
    سن
    42
    پست
    135

    نقل قول: دسترسی به اشیاء یک فرم

    من یه برنامه در آدرس زیر گذاشتم برو دانلود کن شاید جوابتو گرفتی

  4. #4
    کاربر دائمی آواتار mohsen_f_b
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تهران
    سن
    34
    پست
    401

    نقل قول: دسترسی به اشیاء یک فرم

    نقل قول نوشته شده توسط اَرژنگ مشاهده تاپیک
    روش درستش این است که دستیابی نکنید.
    به جایه دست انداختن به اعضایه یک شئی دیگر (در این مورد یک شئی دیگر فرم دیگر است)، از اون فرم درخواست کنید که مقادیر را یا ازتان بگیرد و در عضوش (تکست باکس، داتاگرید...هرچی) نشان بده.
    مواظب جوابهایه اشتباه که میگند خاصیت Modifier اون کنترلی که میخوای اطلاعاتت توش برگرده رو به internal و یا public تغیر بده باش.
    بدترین روش استفاده از یک کلاس و یا فیلد استاتیک است، برایه ذخیره کردن مانند یک متغییر سراسری استفاده میشه و روش واقعا سطح پائیینی است که استفاده‌ نکردن ازش خیلی بهتر است.
    یا یک متد در فرمت بساز که هرکی که صداش زد کارهایه داخلیش را خودش انجام بده و یا اینکه تبدیل به یک پروپرتیش کن و دوباره کارهایه داخلی فرم را در خود همان فرم انجام بدید. اینکه اعضا همینطوری قابل دسترسی باشند روش اشتباهی است.
    استادها در همین مورد مقالاتی در همین تالار دارند.

    مثال بسیار ساده که از روشهایه درست برنامه‌نویسی استفاده میکند ضمیمه کردم.
    یه سوال فنی دیگه.
    برای اینکه زمانی طرف Enter رو زد تو ComboBox در فرم چکار کنیم؟
    باید بگیم وقتی توی Event KeyPress ComboBox ،دکمه Enter زده شده برو btnOk رو کلیک کن؟
    یا می تونیم مستقیم بفرستیم؟
    اخه شما btnOk رو DI اون OK کردین و در Form1 گفتین وقتی OK زده شد.

    باتشکر

  5. #5
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736

    نقل قول: دسترسی به اشیاء یک فرم

    نقل قول نوشته شده توسط mohsen_f_b مشاهده تاپیک
    یه سوال فنی دیگه.
    برای اینکه زمانی طرف Enter رو زد تو ComboBox در فرم چکار کنیم؟
    باید بگیم وقتی توی Event KeyPress ComboBox ،دکمه Enter زده شده برو btnOk رو کلیک کن؟
    یا می تونیم مستقیم بفرستیم؟

    private void comboBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
    if (e.KeyChar == (char)13)
    {
    this.DialogResult = DialogResult.OK;
    }
    }



    نقل قول نوشته شده توسط mohsen_f_b مشاهده تاپیک
    اخه شما btnOk رو DI اون OK کردین و در Form1 گفتین وقتی OK زده شد.
    این چیزی که میگید اصلا ربطی به زدن باتن OK ندارد!

  6. #6
    کاربر تازه وارد آواتار Royce_Da
    تاریخ عضویت
    تیر 1388
    محل زندگی
    Vegas
    پست
    78

    نقل قول: دسترسی به اشیاء یک فرم

    نقل قول نوشته شده توسط اَرژنگ مشاهده تاپیک
    مواظب جوابهایه اشتباه که میگند خاصیت Modifier اون کنترلی که میخوای اطلاعاتت توش برگرده رو به internal و یا public تغیر بده باش.
    بدترین روش استفاده از یک کلاس و یا فیلد استاتیک است، برایه ذخیره کردن مانند یک متغییر سراسری استفاده میشه و روش واقعا سطح پائیینی است که استفاده‌ نکردن ازش خیلی بهتر است.
    .
    پس آقا microsoft این modifier رو واسه چی گزاشته؟

  7. #7
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736

    نقل قول: دسترسی به اشیاء یک فرم

    نقل قول نوشته شده توسط Royce_Da مشاهده تاپیک
    پس آقا microsoft این modifier رو واسه چی گزاشته؟
    وقتی که کدنویسها (نه برنامه‌نویسا) کار را با ویژوال استودیو شروع میکنند، راحتی کار باهاش پیدا میکنند. برایه همین یک روش آسان شروع کردن میشه.
    ولی با هر برنامه‌نویس حرفه‌ای کار کنید، اشکالاتش را میگه.
    در قدیم، مگر استفاده از متغییر سراسری را بد نمیدانستند؟ ولی بازهم قابلیت تعریفش را از زبان برنامه‌نویسی در نمیاوردند، استفاده از مدیفایرها مانند استفاده از ۳ چرخه میماند، اولش راه میندازه ولی بعدش وبال گردن میشه.

  8. #8
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313

    نقل قول: دسترسی به اشیاء یک فرم

    با اجازه جناب آرژنگ مثالشان را بهتر کنیم در فرم 2
     btnOK.DialogResult = DialogResult.OK;
    btnCancel.DialogResult = DialogResult.Cancel;

    این خاصیت ها را برای این دو دکمه قرار دهید و
    پروپرتی Value را به این شکل تغییر دهید
    public string Value
    {
    get
    {
    if (this.ShowDialog() == DialogResult.OK)
    return this.comboBox1.Text;
    return string.Empty ;
    }
    }

    حال در فرم یک
    Form2 newfrm = new Form2();
    textBox1.Text = newfrm.Value;

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

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

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