• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Formu ekranın sağ altına nasıl yerleştirebilirim?

Katılım
5 Nisan 2005
Mesajlar
185
Hazırladığım formu ekranın sağ altına yerleştirmek istiyorum. Ancak bu form Windows Görev Çubuğunun altında kalmamalı. Görev çubuğunu ekranın sağ tarafına düşey olarak yerleştirdiğimizde de yine form bunun altında kalmamalı. Bunu nasıl bir kodla halledebiliriz?
 
Kod:
Private Sub UserForm_Activate()
    Me.Left = Application.Width - Me.Width
    Me.Top = Application.Height - Me.Height
End Sub
'
Private Sub UserForm_Initialize()
    Application.WindowState = xlMaximized
End Sub
 
Sayın Haluk,

Verdiğiniz kod başlangıçta işe yarıyor. Ancak taskbarın pozisyonunu değiştirdiğimizde form, oluşan bu yeni duruma göre pozisyonunu ayarlayamıyor. Yani taskbarı ekranın sağına dikey yerleştirdiğimizde formun altında yatay taskbarın yüksekliği kadar boşluk kalıyor, aynı şekilde taskbarı dikey konumdan yatay konuma aldığımızda bu kez de formun sağında boşluk kalıyor. Bu sorunu nasıl halledebiliriz acaba?
 
Merhaba;

Aşağıdaki kodu da ilave edip de denermisiniz ?

Kod:
Private Sub UserForm_Layout()
    UserForm_Activate
End Sub
 
Sayın Haluk, :hey:

Çok teşekkürler. Son verdiğiniz kodu da projeye ilave ettikten sonra tam istediğim sonucu elde ettim!

Peki normal Visual Basic projesinde aynı olayı nasıl gerçekleştirebiliriz acaba :D
 
Merhaba;

Bende Visual Basic programı olmadığı için bir şey söyleyemeyeceğim.
 
:hey: Merhabalar

Sn Haluk bey
UserForm ekrandayken aynı zaman da excel sayfasında da çalışmak mümkünmü acaba yardımlarınız için şimdiden teşekkurederim

Saygılarımla,
 
Merhaba;
UserForm'un ShowModal özelliğini, False yapın.
 
Sonunda çözdüm!!! Belki başka arkadaşların da işine yarar.


' Modüle yazılacak
Declare Function SystemParametersInfo Lib "User32" _
Alias "SystemParametersInfoA" (ByVal uAction As Long, _
ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) _
As Long ' the API call

Public Type RECT ' Rectangle used for the available screen
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Global Const SPI_GETWORKAREA = 48
Public SW As Long, SH As Long, SL As Long, ST As Long

' Forma yazılacak
Private Sub Form_Paint()
Dim lRet As Long
Dim apiRECT As RECT
lRet = SystemParametersInfo(SPI_GETWORKAREA, vbNull, apiRECT, 0)

SW = apiRECT.Right - apiRECT.Left
SH = apiRECT.Bottom - apiRECT.Top

Move (SW * 15 - Me.Width), (SH * 15 - Me.Height)

End Sub
 
Geri
Üst