افزودن لیبل و تكس باكس به تعداد دلخواه

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • ظهور 313

    • 2017/01/20
    • 244

    پرسش افزودن لیبل و تكس باكس به تعداد دلخواه

    سلام و عرض ادب خدمت اساتید محترم

    میخوام ببینم این كار امكان داره یا نه؟
    میخوام چند سطر لیبل و تكس باكس توی فرم ایجاد كنم كه به ترتیب زیر هم قرار بگیرن و دو مدل رنگ بندی هم داشه باشن
    فقط اینكه
    1- تعداد سطرها متغیره و مثلا براساس مقدار یك یك تكس باكس تعیین میشه
    2- داری یك ستون لیبل و یك ستون تكست‌باكس

    یعنی با یك كلید بشه اونها رو ایجاد كرد و با یك كلید هم حذفشون كرد

    ممنون میشم اساتید راهنمایی بفرمایند
  • mrhartsclube

    • 2017/11/15
    • 130
    • 81.00

    #2
    سلام دوست عزیز

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

    نوشته اصلی توسط ظهور 313
    1- تعداد سطرها متغیره و مثلا براساس مقدار یك یك تكس باكس تعیین میشه
    2- داری یك ستون لیبل و یك ستون تكست‌باكس
    برای ایجاد هر دسته کنترل (در این مثال TextBox و Label) یه Collection باید تعریف کنید و موقع Initialize شدن فرمتون اون رو New کنید که خالی و آماده کار باشه. مثال:

    کد PHP:
    Private TxtBxs As Collection

    Private Sub UserForm_Initialize()
        
    Set TxtBxs = New Collection
    End Sub 
    نوشته اصلی توسط ظهور 313
    یعنی با یك كلید بشه اونها رو ایجاد كرد و با یك كلید هم حذفشون كرد
    برای ایجادشون باید یه حلقه For به تعدادی که نیاز دارید ایجاد کنید، داخلش کنترلتون رو به فرم اضافه کنید و سایزش و جاش و رنگش رو تنظیم کنید (با Property های Height, Width, Top, Left, ForeColor, BackColor و خلاصه هرچی نیاز دارید) مهم ترین قسمت Populate کردن اون Collection مربوطه هست که بعدا بتونید به راحتی پیداشون کنید، حذفشون کنید یا هر بلای دیگه ای که میخواین سرشون بیارید. ادامه مثال:

    کد PHP:
        Dim i As Long
        Dim TxtBox 
    As Control
        
    For 1 To Val(textBox1.Text)
            
    Set TxtBox Me.Controls.Add("Forms.TextBox.1""SomeName" i)
            
    TxtBox .Top 40 20
            TxtBox 
    .Left 20
            TxtBxs
    .Add TxtBoxTxtBox.Name  
        Next i 
    برای حذفشون هم یه حلقه For میذارید و کل Collection مربوطه رو دور میزنید و کنترلهای داخلش رو با استفاده از اسمشون حذف میکنید. در نهایت حتما اون آیتم رو از Collection مربوطه حذف کنید. ادامه ادامه مثال:

    کد PHP:
        Do While TxtBxs.Count 0
            Me
    .Controls.Remove TxtBxs.Item(1).Name
            TxtBxs
    .Remove 1
        Loop 
    نوشته اصلی توسط ظهور 313
    دو مدل رنگ بندی هم داشه باشن
    برای رنگ دادن هم راههای زیادی دارید که من ساده ترینشو اینجا میگم. مثلا وقتی میخواین رنگ نوشته Label یا TextBox رو عوض کنید از ForeColor استفاده میکنید. برای نسبت دادن رنگ میتونید از RGB استفاده کنید به شکل زیر:

    کد PHP:
    Label1.ForeColor RGB(150,120,110
    سه تا عدد داخل پرانتز باید هرکدوم بین 0 تا 255 باشه و به ترتیب نشونگر مؤلفه رنگ قرمز، سبز و آبی هست.
    از رنگهای ثابت خود VBA هم میشه استفاده کرد که خب البته رنگهای اصلی هستن و تعدادشون کمه، مثلا زرد میشه VBA.ColorConstants.vbYellow که میتونید قسمت قبل اسم خود رنگ رو هم ننویسید یعنی بنویسید vbYellow.
    از مقادیر Hex یا مبنای 16 هم میتونید استفاده کنید، مثلا &HFFFFFF سفید هستش، به این شکل که &H ثابت هست، شش رقم بعدی 2تا 2تا به ترتیب آبی، سبز و قرمز هستن. 00 در مبنای 16 معادل 0 هست و FF معادل 255. یعنی درواقع مثل همون RGB هست فقط کوتاه تر و برای اکثر مردم سخت تر هست. مثال معادل همون رنگ مثال بالا:
    کد PHP:
    Label1.ForeColor = &H6E7896 
    Last edited by mrhartsclube; 2020/10/01, 05:30.
    [CENTER][COLOR=#696969][FONT=lucida console]... [B]Programming [/B]C# - VB.Net - VC++ - ASP.Net - HTML - CSS - JS - AS2 - AutoIt - Pascal - Delphi - PHP - Python - VBA - Etc
    [/FONT][/COLOR][SIZE=2][FONT=lucida console][COLOR=#808080]... 2D & 3D [B]Graphic Designer[/B][/COLOR][COLOR=#ff0000][B]|[/B][/COLOR][COLOR=#808080] 2D & 3D [B]Animator [/B][/COLOR][COLOR=#ff0000][B]|[/B][/COLOR][COLOR=#808080] [B]Game [/B]Designer & [B]Hacker [/B][/COLOR][COLOR=#ff0000][B]|[/B][/COLOR][COLOR=#808080] Data [B]Forensic [/B]Expert [/COLOR][COLOR=#ff0000][B]|[/B][/COLOR][COLOR=#808080] [B]Ethical [/B]Hacker [/COLOR][COLOR=#ff0000][B]|[/B][/COLOR][COLOR=#808080] [B]Pen[/B] Tester

    [/COLOR][/FONT][/SIZE][COLOR=#ff0000][FONT=courier new][SIZE=4][B].: Expert in doing what nobody else can :.[/B][/SIZE][/FONT][/COLOR][/CENTER]

    کامنت

    چند لحظه..