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

نام تاپیک: ارايه اي از كنترل ها

  1. #1

    ارايه اي از كنترل ها

    سلام
    چه طور ميشه ارايه اي از كنترل ها رو در vb.netساخت تو vb6 اين كار خيلي راحت بود كافي بود كه فقط به همه كنترل ها يك نام بديم و بعد يه انديس براي هر كدومشون درست ميشد اما اين جا نميدونم چه طوره
    خواهش ميكنم اگه كسي در اين باره اطلاعي داره كمك كنه

    تو اين سايت يه چيزايي بود اما من كه متوجه نشدم شيد شما متوجه شيد

    http://www.codeproject.com/KB/vb/Control_Arrays.aspx

  2. #2
    کاربر دائمی آواتار ali_najari
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اصفهان
    سن
    36
    پست
    849

    نقل قول: ارايه اي از كنترل ها

    دوست عزیز اینجا میتونید از روش زیر استفاده کنید:
    دوست عزیز این کد رو توی Form Load با توی یک Button بزار

    Dim TB az New textBox
    For I as integer = 1 to 5
    TB.name = "textbox" & i
    Tb.Backcolor=Color.White
    if i = 1 then
    Tb.loacation = new point(10,10)
    else
    Tb.loacation = new point(10,(I*10) + (i*Tb.height))
    end if
    AddHandler Tb.Enter, AddressOf Textbox_Enter
    AddHandler Tb.Leave, AddressOf Textbox_Leave
    me.Controls.add(tb)
    next


    این هم مابقی کدهای مورد نیاز

    Private Sub Textbox_Enter(byval Sender as object,ByVal e As System.EventArgs)
    DirectCast(sender, TextBox).BackColor = Color.FromArgb(255, 255, 192)
    end Sub
    Private Sub Textbox_Leave(byval Sender as object,ByVal e As System.EventArgs)
    DirectCast(sender, TextBox).BackColor = Color.White
    end Sub

  3. #3

    نقل قول: ارايه اي از كنترل ها

    من نميخوام وقتي فرم لودميشه چند تا كنترل اضافه كنه و اونا رو با هم ارايه كنه من چند تا تكس دارم كه از اول بودن و با انجام يه كار ميخوام همين تكس هايي كه از اول بودن با هم ارايه بشن

  4. #4
    کاربر دائمی
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    جلوي مانيتور
    پست
    287

    نقل قول: ارايه اي از كنترل ها

    باید یک آرایه یا collection از نوع textbox بسازی بعد آن textbox ها را به آن اضافه کنی :
    در ابتدای class فرمی که کنترلهایت در آن است بنویس:

    Private
    txtcol As New Collections.ObjectModel.Collection(Of TextBox)

    سپس در formLoad بنویس :
    txtcol.add(Textbox1)
    txtcol.add(Textbox2)
    ...

  5. #5
    کاربر دائمی آواتار meysam_meysam74
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    رشت
    پست
    197

    نقل قول: ارايه اي از كنترل ها

    سلام
    شما اول فرض میکنیم 2 تا تکس باکس دارید
    textbox1 , textbox2
    تویه روال چنج تکس باکس 1 کد مورد نظرتون رو مینویسید یا هر روال دیگه ای که دلتون میخواد من مثلا زدم
    بعدش اخر روال یه ویرگول مزارید و به این شکل مینویسید
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged ,TextBox2.TextChanged
    نکته مهم اینه
    TextBox1.TextChanged ,TextBox2.TextChanged
    برای هر روالی عوض میشه حالا شما چه جوری باید متوجه بشید که کدوم تکس جنج شده
      Select Case sender.GetHashCode
    Case TextBox1.GetHashCode
    MsgBox("text1")
    Case TextBox2.GetHashCode
    MsgBox("text2")
    End Select

    امید وارم مشکل حل شده باشه

  6. #6
    کاربر دائمی
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    جلوي مانيتور
    پست
    287

    نقل قول: ارايه اي از كنترل ها

    نقل قول نوشته شده توسط meysam_meysam74 مشاهده تاپیک
    سلام
    شما اول فرض میکنیم 2 تا تکس باکس دارید
    textbox1 , textbox2
    تویه روال چنج تکس باکس 1 کد مورد نظرتون رو مینویسید یا هر روال دیگه ای که دلتون میخواد من مثلا زدم
    بعدش اخر روال یه ویرگول مزارید و به این شکل مینویسید
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged ,TextBox2.TextChanged
    نکته مهم اینه
    TextBox1.TextChanged ,TextBox2.TextChanged
    برای هر روالی عوض میشه حالا شما چه جوری باید متوجه بشید که کدوم تکس جنج شده
     Select Case sender.GetHashCode
    Case TextBox1.GetHashCode
    MsgBox("text1")
    Case TextBox2.GetHashCode
    MsgBox("text2")
    End Select

    امید وارم مشکل حل شده باشه
    دوست عزیز اینهایی که نوشتی چه ارتباطی به آرایه داره؟؟؟؟؟؟

  7. #7
    کاربر دائمی آواتار meysam_meysam74
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    رشت
    پست
    197

    نقل قول: ارايه اي از كنترل ها

    خوب ببخشید من بد متوجه شدم
    من جواب دوست عزیزمون اقا علی را یه مقدار عوض کردم و حالا شما میتونید ازش استفاده کنید اگه منظورتون دقیقا چیزی هست که تویه ویبی 6 بود و انظار دارید اینجا هم یه اندکس اونجوری باشه نه تویه وی بی دات نت که از فرامورکر استفاده بکنه چینی چیزی نیست یا به قول معروف گشتم نبود نگرد نیست
    Dim TB(3) As TextBox
    Dim ArrH(3) As Long
    Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
    Select Case sender.GetHashCode
    Case ArrH(0)
    MsgBox("change1")
    Case ArrH(1)
    MsgBox("change2")
    Case ArrH(2)
    MsgBox("change3")
    Case ArrH(3)
    MsgBox("change4")
    End Select
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    TB(0) = TextBox1
    TB(1) = TextBox2
    TB(2) = TextBox3
    TB(3) = TextBox4
    For I As Integer = 0 To 3
    ArrH(I) = TB(I).GetHashCode
    TB(I).BackColor = Color.White
    AddHandler TB(I).TextChanged, AddressOf TextBox2_TextChanged
    Next
    End Sub

  8. #8
    کاربر دائمی آواتار omid-vbAuto
    تاریخ عضویت
    آبان 1388
    محل زندگی
    ---
    پست
    755

    نقل قول: ارايه اي از كنترل ها

    دوستان من یه سوال داشتم:

    به طور مثال چطوری می تونیم 10 تا textbox تولید کنیم که الگریتم Name اونها (نه Text شون) به صورت textbox1 و textbox2 و textbox3 و ... و textbox10 باشه.با این شرط که در حین کد نویسیمون بتونیم کد زیرو بنویسیم:




    TextBox7.Text = "23"




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


    با تشکر فراوان

  9. #9
    کاربر دائمی آواتار meysam_meysam74
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    رشت
    پست
    197

    نقل قول: ارايه اي از كنترل ها

    دوست عزیز سوالتون واضع نیست

  10. #10
    کاربر دائمی آواتار omid-vbAuto
    تاریخ عضویت
    آبان 1388
    محل زندگی
    ---
    پست
    755

    نقل قول: ارايه اي از كنترل ها

    نقل قول نوشته شده توسط meysam_meysam74 مشاهده تاپیک
    دوست عزیز سوالتون واضع نیست
    دوست عزیز من می خوام با کد نویسی بطور مثال 10 تا تکس باکس درست کنم.خوب؟

    حالا می خوام برای هر تکس باکس درست شده یه نام مشخصی هم بدم.مثلا textbox1 و textbox2 و ... .خوب؟

    و می خوام از این تکس باکس ها در کد نویسی هام بهصورت زیر استفاده کنم.همین




    TextBox1.Text = "OMID"
    Me.Text = TextBox1.Text


  11. #11
    کاربر دائمی
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    جلوي مانيتور
    پست
    287

    نقل قول: ارايه اي از كنترل ها

    نقل قول نوشته شده توسط omid-vbAuto مشاهده تاپیک
    دوستان من یه سوال داشتم:

    به طور مثال چطوری می تونیم 10 تا textbox تولید کنیم که الگریتم Name اونها (نه Text شون) به صورت textbox1 و textbox2 و textbox3 و ... و textbox10 باشه.با این شرط که در حین کد نویسیمون بتونیم کد زیرو بنویسیم:




    TextBox7.Text = "23"




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


    با تشکر فراوان
    ببین دوست عزیز چون هر کنترل برای دسترسی و برنامه نویسی احتیاج به یک متغیر در حافظه دارد پس باید از قبل تعریف و مقدار دهی اولیه و ... شود ای چیزی که ما درکد مویسی به عنوان instance به آن مراجعه می کنیم و property و method و ... آنرا مقدار دهی یا call می کنیم در اصل نام آن متغیرها می باشد . قواعد نامگذاری متغیرها به ما اجازه نمیدهد در حالت runtime نام یک متغیر را به صورت دینامیک قراردهیم .دقت کنید گفتم نام متغیر نه خصوصیت name آنرا فقط می توانیم برای ایجاد متغیرهای دینامیک به صورتیکه قابلیت رد گیری داشته باشند از آرایه ، collection و ... استفاده کرد البته می توان آنرا بدون اضافه کردن در آرایه یا collection در form.controls اضافه کرد و از همان طریق هم آنرا ردیابی کرد ولی ناگفته نماند که form.controls نیز یک collection می باشد

  12. #12
    کاربر دائمی آواتار omid-vbAuto
    تاریخ عضویت
    آبان 1388
    محل زندگی
    ---
    پست
    755

    نقل قول: ارايه اي از كنترل ها

    نقل قول نوشته شده توسط Rezahak مشاهده تاپیک
    ببین دوست عزیز چون هر کنترل برای دسترسی و برنامه نویسی احتیاج به یک متغیر در حافظه دارد پس باید از قبل تعریف و مقدار دهی اولیه و ... شود ای چیزی که ما درکد مویسی به عنوان instance به آن مراجعه می کنیم و property و method و ... آنرا مقدار دهی یا call می کنیم در اصل نام آن متغیرها می باشد . قواعد نامگذاری متغیرها به ما اجازه نمیدهد در حالت runtime نام یک متغیر را به صورت دینامیک قراردهیم .دقت کنید گفتم نام متغیر نه خصوصیت name آنرا فقط می توانیم برای ایجاد متغیرهای دینامیک به صورتیکه قابلیت رد گیری داشته باشند از آرایه ، collection و ... استفاده کرد البته می توان آنرا بدون اضافه کردن در آرایه یا collection در form.controls اضافه کرد و از همان طریق هم آنرا ردیابی کرد ولی ناگفته نماند که form.controls نیز یک collection می باشد

    آفرین مهندس


    دقیقا منظور من هم همین بود که شما به خوبی اشاره کردین.


    حالا ما با چه کدی کنترل هائی ایجاد کنیم و بتونیم آنهارا ردیابی کرده وتغییرات لازمه رو در آنها اعمال کنیم؟

  13. #13
    کاربر دائمی
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    جلوي مانيتور
    پست
    287

    نقل قول: ارايه اي از كنترل ها

    نقل قول نوشته شده توسط omid-vbAuto مشاهده تاپیک
    حالا ما با چه کدی کنترل هائی ایجاد کنیم و بتونیم آنهارا ردیابی کرده وتغییرات لازمه رو در آنها اعمال کنیم؟
    دوست عزیز فرض کنید شما می خواهید 10 تا textbox به طور دینامیک در حالت runtime ایجاد کنید . باید کد زیر را در formload یا click یک button بنویسید:
    dim txt as TextBox
    for idx as integer = 1 to 10
    txt=new Textbox
    txt.name = "TextBox" & idx.tostring
    txt.top = 10 +txt.height * idx + (idx-1)*10
    me.controls.add(txt)

    next

    حالا این رو داشته باش تا بقیه رو برات توضیح بدم راستش الان وقت ندارم اگه این رو تست کردی نتیجه رو بنویس تا بقیه رو توضیح بدم

  14. #14
    کاربر دائمی آواتار omid-vbAuto
    تاریخ عضویت
    آبان 1388
    محل زندگی
    ---
    پست
    755

    نقل قول: ارايه اي از كنترل ها

    نقل قول نوشته شده توسط Rezahak مشاهده تاپیک
    دوست عزیز فرض کنید شما می خواهید 10 تا textbox به طور دینامیک در حالت runtime ایجاد کنید . باید کد زیر را در formload یا click یک button بنویسید:
    dim txt as TextBox
    for idx as integer = 1 to 10
    txt=new Textbox
    txt.name = "TextBox" & idx.tostring
    txt.top = 10 +txt.height * idx + (idx-1)*10
    me.controls.add(txt)

    next

    حالا این رو داشته باش تا بقیه رو برات توضیح بدم راستش الان وقت ندارم اگه این رو تست کردی نتیجه رو بنویس تا بقیه رو توضیح بدم
    مهندس مرحله اول یعنی ساخت آبجکت ها با موفقیت انجام شد.

    حالا منتظر مرحله دوم کد شما هستم تا بتونم آبجکت های تولیدی رو ردیابی و تغییرات لازمه رو روشن انجام بدم.

    با تشکر

  15. #15
    کاربر دائمی
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    جلوي مانيتور
    پست
    287

    نقل قول: ارايه اي از كنترل ها

    نقل قول نوشته شده توسط omid-vbAuto مشاهده تاپیک
    مهندس مرحله اول یعنی ساخت آبجکت ها با موفقیت انجام شد.

    حالا منتظر مرحله دوم کد شما هستم تا بتونم آبجکت های تولیدی رو ردیابی و تغییرات لازمه رو روشن انجام بدم.
    خب این مرحله دیگه خیلی آسونه . فرض کن می خواهی به متن داخل Textbox که نام آنرا TextBox2 گذاشتی دسترسی پیدا کنی .فقط کافیه بنویسی :
    CType(Me.Controls.Item("TextBox2"), TextBox).Text

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

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