65.9K
CodeProject is changing. Read more.
Home

Popup UserControl - KarubButton

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.68/5 (11 votes)

Aug 1, 2007

CPOL
viewsIcon

40416

downloadIcon

1050

Secure password input screen

Screenshot - Image.png

Introduction

  • Drop Shadow Supported (İf your show shadow properties is enabled on your System, it will be shown.)
  • Safe password input screen (below...)

Screenshot - Image7.png

Lock button for Popup UserControl... Screenshot - Image5.png

This is our Popup UserControl property. It supports a few special features. In this screen:

Screenshot - Image1.png

Background

This application is written in C# 2005. We use this project in our safe password/key attempt application. I thought of this project for Keylogger application. Perhaps this project can be useful to us for keylogger.

Screenshot - Image3.png

We can exchange button style in this popup control because it is KarubButton. Also, we can change our border color at this user control.

Screenshot

Screenshot - Image6.png

Default popup UserControl picture:

Screenshot - Image2.png

and now, the support of system shadow:

Screenshot - Image4.png

Using the Code

For example, some sample code in this project...

private void Showing(object sender, EventArgs e)
{
mProgress = ((TimeSpan)
            (DateTime.Now.Subtract(mTimerStarted))).TotalMilliseconds / mPopup.mAnimationSpeed;
if (mProgress >= 1)
{
mTimer.Stop();
mTimer.Tick -= new EventHandler(Showing);
AnimateForm(1);
}
else
AnimateForm(mProgress);//görünüme devam et
}
 
private void AnimateForm(double progress)//açılır animasyon methodu
{
//x ve y poziyon daha sonra formun width ve hight değerleri
double[] dizi ={ 0, 0, 0, 0 };//x,y,w,h
if (progress <= 0.1) progress = 0.1;

if (animasyon_Tip == AnimationType.PopupMenu)
{
switch (mPlacement)//y pozisyon ve hight değerleri
{
case ePlacement.Top:
dizi[1] = 1 - progress;
dizi[3] = progress;
break;
case ePlacement.TopLeft:
dizi[1] = 1 - progress;
dizi[3] = progress;
break;
case ePlacement.TopRight:
dizi[1] = 1 - progress;
dizi[3] = progress;
break;
case ePlacement.Bottom:
dizi[1] = 0;
dizi[3] = progress;
break;
case ePlacement.BottomLeft:
dizi[1] = 0;
dizi[3] = progress;
break;
case ePlacement.BottomRight:
dizi[1] = 0;
dizi[3] = progress;
break;
case ePlacement.Left:
dizi[1] = 0;
dizi[3] = 1;
break;
case ePlacement.Right:
dizi[1] = 0;
dizi[3] = 1;
break;
}
switch (mPlacement)//x poziyon ve width değerleri
{
case ePlacement.TopLeft:
dizi[0] = 1 - progress;
dizi[2] = progress;
break;
case ePlacement.BottomLeft:
dizi[0] = 1 - progress;
dizi[2] = progress;
break;
case ePlacement.Left:
dizi[0] = 1 - progress;
dizi[2] = progress;
break;
case ePlacement.TopRight:
dizi[0] = 0;
dizi[2] = progress;
break;
case ePlacement.BottomRight:
dizi[0] = 0;
dizi[2] = progress;
break;
case ePlacement.Right:
dizi[0] = 0;
dizi[2] = progress;
break;
case ePlacement.Top:
dizi[0] = 0;
dizi[2] = 1;
break;
case ePlacement.Bottom:
dizi[0] = 0;
dizi[2] = 1;
break;
}
mCurrentBounds.X = mNormalPos.X + (int)(dizi[0] * mControlSize.Width);
mCurrentBounds.Y = mNormalPos.Y + (int)(dizi[1] * mControlSize.Height);
mCurrentBounds.Width = (int)(dizi[2] * mControlSize.Width) + 2 * BORDER_MARGIN;
mCurrentBounds.Height = (int)(dizi[3] * mControlSize.Height) + 2 * BORDER_MARGIN;
}
else
{
if (this.Opacity < (double)mPopup.OpacityValue / 100)
{
this.Opacity += (progress - 0.09);
}
else
{
this.Opacity = (double)mPopup.OpacityValue / 100;
}
mCurrentBounds.X = mNormalPos.X;//formun x mesafesi
mCurrentBounds.Y = mNormalPos.Y;//formun y mesafesi
mCurrentBounds.Width = mControlSize.Width + (2 * BORDER_MARGIN);//genişliği
mCurrentBounds.Height = mControlSize.Height + (2 * BORDER_MARGIN);//yüksekliği
}
this.Bounds = mCurrentBounds;
}

#region Public Properties and Event
public event bir DropDown;
public event iki DropDownClosed;
[Browsable(false)]//do not visible
public Control UserControl
{
get { return mUserControl; }
set { mUserControl = value; }
}
[Description("Formun opak veya transparent gözükme seçeneklerini ayarlar."),
Browsable(true),
DefaultValue(100)]
public byte OpacityValue
{
get { return opacity_deger; }//değer okunacak
set //gönderilen değer yazılacak
{
try
{
if (value < 0 || value > 100)
throw new Exception("Lütfen 0 ile 100 arasında bir değer giriniz.");
}
catch (Exception hata_Olustu)
{
MessageBox.Show(hata_Olustu.Message);
value = 100;
}
finally//hata olsada olmasada buraya uğrar
{
opacity_deger = value;
}
}
}
[Browsable(false)]
public Control Parent
{
get { return mParent; }
set { mParent = value; }
}
[Description("Shadow Visibility"),
DefaultValue(false)]
public bool ShowShadow
{
get { return mShowShadow; }
set { mShowShadow = value; }
}
[Description("Animasyonun hızını ayarlar."),
DefaultValue(100)]
public int AnimationSpeed
{
get { return mAnimationSpeed; }
set { mAnimationSpeed = value; }
}
 
[Description("Popup formun açılış kordinatlarını ayarlar."),
DefaultValue(typeof(SifreKontrol.Popup.ePlacement),"BottomRight")]
public ePlacement Placement
{
get { return mPlacement; }
set { mPlacement = value; }
}
[Description("Border Color"),
DefaultValue(typeof(Color),"DarkGray")]
public Color BorderColor
{
get { return mBorderColor; }
set { mBorderColor = value; }
}
[Description("Animasyon tipini ayarlamanızı sağlar."),
Browsable(true),
DefaultValue(typeof(Popup.AnimationType), "PopupMenu")]
public AnimationType Animasyon_Tip
{
get { return animasyon_Tip; }
set { animasyon_Tip = value; }
}
#endregion//done

History

  • 1st August, 2007: Initial version