View Full Version : سوال: تغییر خواص چند کنترل هم نوع ( مثلا چند Textbox ) با تغییر یک مرجع
  
pooya1072
سه شنبه 08 اسفند 1391, 20:17 عصر
سلام
فرض کنید توی یک فرم 50 تکست باکس داریم که می خواهیم مثلا فونت همه آنها Arial باشد . بهترین کار برای حل این مسئله چیه؟
اینکه برای هر کدام جداگانه تعریف کنیم در تعداد زیاد کار جالبی نیست.
اگه ممکنه با یک مثال عملی توضیح بدید.
متشکرم
JaVa
سه شنبه 08 اسفند 1391, 20:22 عصر
خیلی راحته.
شما 2 تا راه دارید بدون کد نویسی.
1- قبل از قرار گرفتن کنترل ها رو فرم برید مشخصه Font فرم رو تنظیم کنید. بعد کنترل هاتون رو فرم بزارید بصورت خودکار فونت کنترل ها با فونت فرم یکی میشه.
راه دوم. اگه شما الان کنترل هاتون روی فرم گذاشتید کافی یه GroupBox به فرم اضافه کنید و مشخصه Font کنترل GroupBox رو عوض کنید بعد کنترل هاتون رو توی کنترل GroupBox بکشید خودشون فونتشون عوض میشه.
موفق باشید
SHD.NET
سه شنبه 08 اسفند 1391, 20:24 عصر
سلام. اونطور که متوجه شدم انگار میخواین کل تکست باکس ها رو فونتشون رو از طریق کدنویسی عوض کنید ، کد زیر این کارو انجام میده
Option Strict On
Public Class Form1
  Private Sub Form1_FontChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.FontChanged
    ChangeFontName(Me, Me.Font)
  End Sub
  Public Shared Sub ChangeFontName(ByVal aForm As Form, ByVal aFont As Font)
    For Each frm As Form In My.Application.OpenForms
      If frm.HasChildren = True Then
        For Each ctrl As Control In frm.Controls
          ChangeFontName(ctrl, aFont)
        Next
      End If
    Next
    If aForm.IsMdiContainer = True Then
      For Each frm As Form In aForm.MdiChildren
        If frm.HasChildren = True Then
          For Each ctrl As Control In frm.Controls
            ChangeFontName(ctrl, aFont)
          Next
        End If
      Next
    End If
  End Sub
  Public Shared Sub ChangeFontName(ByVal aControl As Control, ByVal aFont As Font)
    If aControl.HasChildren = True Then
      For Each ctrl As Control In aControl.Controls
        ctrl.Font = New Font(aFont.Name, ctrl.Font.Size, ctrl.Font.Style, ctrl.Font.Unit, ctrl.Font.GdiCharSet, ctrl.Font.GdiVerticalFont)
        ChangeFontName(ctrl, aFont)
      Next
    Else
      'This line added as child controls without children were not being changed.>>
      aControl.Font = New Font(aFont.Name, aControl.Font.Size, aControl.Font.Style, aControl.Font.Unit, aControl.Font.GdiCharSet, aControl.Font.GdiVerticalFont)
    End If
  End Sub
End Class
**موفق باشید**
pooya1072
سه شنبه 08 اسفند 1391, 22:19 عصر
با سلام و تشکر
دوستان عزیز .... تکست باکس و فونت اون رو به عنوان مثال گفتم . مثلا اگه بخوام عرض تکست باکسها یا مقدار left همه اونها رو عوض کنم چی؟
منظور من تمام پروپرتی های قابل تغییر یک کنترله . من به دنبال یه جواب کلی تر هستم . مثلا از طریق تعریف یه کلاس جدید که از کنترل مورد نظر خواص را به ارث برده باشد یا یک چنین چیزی.
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.