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?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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
 
Katılım
5 Nisan 2005
Mesajlar
185
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?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba;

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

Kod:
Private Sub UserForm_Layout()
    UserForm_Activate
End Sub
 
Katılım
5 Nisan 2005
Mesajlar
185
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
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba;

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

neo

Katılım
24 Ağustos 2004
Mesajlar
287
: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,
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba;
UserForm'un ShowModal özelliğini, False yapın.
 
Katılım
5 Nisan 2005
Mesajlar
185
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
 
Üst