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

نام تاپیک: ایجاد Index

  1. #1
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    هلند
    پست
    1,709

    ایجاد Index

    دوستان سلام
    دوستانی که با وی بی کار کرده اند (منظورم vb 6.00) میدانند که میتوان اشیاء هم نام را به شکل یک دسته و با یک نام که دارای ایندکسهای مختلفی هستند تقسیم نمود .
    مثلا 10 عدد TextBox با یک نام و با ایندکسهای از صفر تا 9 میتوان ایجاد نمود که این دسته بندی در خیلی مواقع کار برنامه نویسی را خیلی آسان مینماید .
    حال سوال من این است که آیا این چنین امکانی در VB.NET وجود دارد یا خیر ؟

  2. #2
    مطمئن نیستم که درست فهمیده*باشم منظور شما رو، اما اگر مثلاً ۱۰ تا TextBox شما اسماشون tb1 و tb2 .... تا tb10 باشه و بخوای توی اون*ها لوپ کنی، می*تونی همچین کاری بکنی:


    Dim i as Byte
    For i = 1 to 10
    Me.Controls("tb" & i).Text = ""
    Next

  3. #3
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    هلند
    پست
    1,709
    نه دوست عزیز منظورم این نبود
    ببین ما 10 عدد تکت باکس داریم بنام txtAdd حال برای مقدار دهی از کد زیر میتوان استفاده نمود

    dim i as byte
    for i=0 to 9
    txtAdd(i)="Input"
    next


    حال هر 10 عدد تکست باکس مقدار Input را میگیرند . یا مثلا برای اینکه مقدار موجود در تکست باکس پنجم را بدست بیاریم باید بنویسیم

    dim m as String
    m=txtAdd(4)

    البته این کد در وی بی 6 میباشد
    امیدوارم متوجه منظورم شده باشید

  4. #4
    خوب اون توی VB6 بود که شما یک Array* از textbox ها می*ساختی. الان توی دات نت انقدری که من بلدم به جای ساختن همچین آرایه*ای، از me.controls استفاده می*کنن. اسم textbox* ها هم نمی*تونه مثل هم باشه عینا چون در OOP باید اسم اشیایی که توی یک scope*هستن فرق داشته باشه.
    حالا اون راه حل پیشنهادی من چه ایرادی داشت؟

  5. #5
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    هلند
    پست
    1,709
    دوست عزیز اگه بتونیم از آرایه استفاده کنیم کارها خیلی راحتتر پیش میره
    به این کد زیر دقت کن

    Private Sub txtAdd_GotFocus(Index As Integer)
    txtAdd(Index).SelStart = 0
    txtAdd(Index).SelLength = Len(txtAdd(Index))
    End Sub

    اگه در کد بالا هر تکست باسی(Index) فوکوس را به دست گرفت متنش آبی میشود چون از آرایه استفاده شده این کد برای هر 10 ( یا هر چند) تکست باکس جواب میده حال اگه همین کدها ا برای 10 عدد تکست باکس جداگانه بنویسیم کلی برنامه نویسی میشه و کلی درد سر
    آیا در دات نت هم چنین حالتی را میشه ایجاد کرد؟

  6. #6
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313
    نقل قول نوشته شده توسط Hossein Bazyan مشاهده تاپیک
    دوست عزیز اگه بتونیم از آرایه استفاده کنیم کارها خیلی راحتتر پیش میره
    به این کد زیر دقت کن

    Private Sub txtAdd_GotFocus(Index As Integer)
    txtAdd(Index).SelStart = 0
    txtAdd(Index).SelLength = Len(txtAdd(Index))
    End Sub

    اگه در کد بالا هر تکست باسی(Index) فوکوس را به دست گرفت متنش آبی میشود چون از آرایه استفاده شده این کد برای هر 10 ( یا هر چند) تکست باکس جواب میده حال اگه همین کدها ا برای 10 عدد تکست باکس جداگانه بنویسیم کلی برنامه نویسی میشه و کلی درد سر
    آیا در دات نت هم چنین حالتی را میشه ایجاد کرد؟
    در .نت بعضی چیزها بطور اساسی تغییر کرده است.
    برای این کار شما 2 روش هست
    1- یک کلاس مشتق شده از textbox درست کنید و همین کد را بنویسد در رخداد gotfocus
    2- در ویبی 6 اسم تابع رخداد خیلی مهم بود ولی در .نت این مهم نیست
    از این کد می توانید استفاده کنید

    Private
    Sub TextBox1_GotFocus(ByVal sender AsObject, ByVal e As System.EventArgs) Handles TextBox1.GotFocus, TextBox2.GotFocus
    ' do something here!
    EndSub

  7. #7
    در .net هم می شه از hashtable استفاده کرد که ارایه ای از کنترل ها می سازه

  8. #8
    اگه بخوای از آرایه ای از کنترل ها در Net استفاده کنی باید خودت کنترل ها را بسازی :

    Dim TextBoxes(10) as TextBox
    for i=0 to 9
    textboxes(i).text="txt" & i
    me.controls.Add(TextBoxes(i)
    بقیه خصوصیات را نیز همینطور مقدار دهی کنید
    next
    me.resumeLayout

  9. #9
    خوب حسین آقا، اگر واقعا مشکل شما فقط همانی است که در مثال گفتی همچین کدی برای شما مناسب تره که:


    Private Sub TextBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles TextBox1.Enter, TextBox2.Enter
    Dim tmpTextBox As TextBox
    tmpTextBox = CType(sender, TextBox)
    tmpTextBox.Text = "HAS"
    'Whatever you want to do
    End Sub


    توجه داری که من به سادگی یک Sub رو مسئول Handle‌ کردن دوتا رویداد کردم، و برای این که بفهمم کدوم شیئ دچار رویداد شده، از sender بهره کافی بردم!

  10. #10
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    هلند
    پست
    1,709
    دوستان از همه شما سپاسگزارم ( دکمه تشکر نمونده و الا از اون استفاده میکردم ) من هنوز وقت تست آنها را پیدا نکردم

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

  1. استفاده از index
    نوشته شده توسط FatemehB در بخش SQL Server
    پاسخ: 13
    آخرین پست: سه شنبه 19 تیر 1386, 23:03 عصر
  2. index صفحات مخصوص کاربر
    نوشته شده توسط PrinceDotNet در بخش ASP.NET Web Forms
    پاسخ: 13
    آخرین پست: یک شنبه 03 تیر 1386, 23:48 عصر
  3. استفاده از فایل Index در IE
    نوشته شده توسط Mahdi_S_T در بخش برنامه نویسی در Delphi
    پاسخ: 2
    آخرین پست: یک شنبه 26 تیر 1384, 15:45 عصر
  4. index
    نوشته شده توسط fm_mash در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: یک شنبه 21 فروردین 1384, 13:17 عصر
  5. تغییر صفحه پیش فرض بر روی سرور از index.html به index.aspx
    نوشته شده توسط hosseintaheri در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: دوشنبه 14 دی 1383, 00:27 صبح

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

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