Skip to main content

CheckBox

Kullanıcının tek bir koşulu işaretleyip işaretlemediğini belirten onay kutusu nesnesidir. İşaretliyse true, boşsa false değerini tutar.

Ne zaman kullanılır?

Açık/kapalı, evet/hayır, kabul ediyorum/etmiyorum gibi iki durumlu seçimler için idealdir. Örneğin "Şartları okudum ve kabul ediyorum" ya da "KDV dahil" gibi alanlarda kullanılır. Birden çok seçenekten birini seçtirmek istiyorsanız RadioButton, bir listeden seçim için ComboBox daha uygundur.

Değer tipi: bool

Tasarımcı özellikleri

Bir CheckBox seçildiğinde Özellik Görüntüleyici sekmelere ayrılır.

General

ÖzellikAçıklama
NameNesnenin koddaki adı (ör. CheckBox1). Koddan bu adla erişirsiniz.
Field NameVeritabanındaki alanın adı.

Label

Nesnenin yanındaki etiketi yönetir.

ÖzellikAçıklama
Caption / TextEtiketin yazısı (çok dilli olabilir).
PositionEtiketin yeri: solda (Left) veya üstte (Top).
Width / HeightEtiketin boyutu.
FontYazı tipi, kalın / italik / altı çizili.
Show ColonEtiketin sonuna iki nokta (:) ekler.
Horizontal Align / Vertical AlignEtiketin hizası.
VisibleEtiketi gösterir veya gizler.

Behavior

ÖzellikAçıklama
ReadOnlyOnay kutusunu salt okunur yapar; kullanıcı işaretini değiştiremez.
RequiredAlanı zorunlu yapar; işaretlenmeden form kaydedilmez.
Tab IndexTab tuşuyla geçiş sırasını belirler.

Appearance

ÖzellikAçıklama
Visible / Client VisibleNesnenin görünürlüğü.
Enabled / Client EnabledNesnenin aktif olup olmadığı.
LabelOnay kutusunun yanındaki yazı (çok dilli olabilir).
TitleFareyle üzerine gelince çıkan ipucu yazısı (çok dilli olabilir).
ValueKutunun başlangıç durumu: işaretli (true) veya boş (false).

Olaylar

Bir nesne açılırken olaylar belirli bir sırayla tetiklenir; kullanıcı kutuyu işaretleyince de ayrı olaylar çalışır. Doğru kodu doğru olaya yazmak için bu sırayı bilmek işinizi kolaylaştırır.

Açılış sırası: OnInitOnLoadOnDataLoadOnPreRenderOnRender

Kullanıcı işaretleyince: OnValueChangingOnValueChanged

Olaylar iki tarafta çalışabilir: sunucu olayları C# kodunda, istemci olayları tarayıcıdaki TypeScript kodunda. CheckBox'ın iki tarafta sunduğu olaylar farklıdır.

Sunucu olayları (Server)

OlayNe zaman çalışır
OnInitForm açılırken nesne oluşturulduğunda, en başta.
OnLoadOnInit'in hemen ardından, nesne yüklenince.
OnRenderNesne ekrana çizilirken.
OnValidatingDeğer doğrulanırken (zorunlu/koşul kontrolü).
OnValueChangingDeğer değişmeden hemen önce (iptal edilebilir).
OnValueChangedKullanıcı kutuyu işaretleyip değer kesinleştiğinde. En sık kullanılan olaydır.

İstemci olayları (Client)

Sunucudaki olaylara ek olarak tarayıcı tarafında şunlar da vardır:

OlayNe zaman çalışır
OnDataLoadNesnenin verisi yüklendiğinde.
OnPreRenderNesne ekrana çizilmeden hemen önce.
OnClick / OnDoubleClickNesneye tıklanınca / çift tıklanınca.
OnPropertyChanging / OnPropertyChangedBir özellik kodla değiştirilmeden önce / sonra.
Olay parametreleri

OnValueChanging olayının parametresi (args TS, e C#) şunları taşır:

  • newValue / NewValue — işaretlenmek istenen yeni değer (true / false)
  • oldValue / OldValue — önceki değer
  • cancel / Canceltrue yapılırsa değişiklik iptal edilir (yalnızca Changing olayında)

OnValueChanged olayında cancel yoktur (değişiklik artık gerçekleşmiştir).

Kod örnekleri

Bir CheckBox'a üç yerden erişebilirsiniz. Sunucu örnekleri turuncu, istemci örnekleri kırmızı çerçevelidir. Değer bool (mantıksal) tipindedir.

Form kodu (C#, sunucu)

Form kodunda nesneye doğrudan adıyla erişirsiniz:

// Oku
bool onay = CheckBox1.Value;

// Yaz
CheckBox1.Value = true;

Akış (Flow) kodu (C#, sunucu)

Akış kodunda nesneye Document1.Controls üzerinden erişirsiniz:

// Oku
bool onay = Document1.Controls["CheckBox1"].Value;

// Yaz
Document1.Controls["CheckBox1"].Value = true;

İstemci kodu (TypeScript, tarayıcı)

İstemci tarafında nesnelere this. ile erişilir ve özellik adı küçük harfle yazılır (value):

// Oku
const onay = this.CheckBox1.value;

// Yaz
this.CheckBox1.value = true;
Değer her zaman dolu gelir

CheckBox'ın değeri hiçbir zaman boş (null) olmaz; ya true ya false'tur. Bu yüzden okurken boş kontrolü yapmanıza gerek kalmaz, doğrudan if (onay) yazabilirsiniz.

Örnek: işaretlemeyi engelleme (OnValueChanging)

OnValueChanging değer değişmeden hemen önce çalışır; istemediğiniz bir durumu burada iptal edebilirsiniz. Aşağıdaki örnekte, başka bir koşul sağlanmadan kutunun işaretlenmesi engellenir.

İstemci (TypeScript):

async CheckBox1_OnValueChanging(args: Controls.EventArgs.IPropertyChangingEventArgs<boolean>) {
if (args.newValue == true) {
args.cancel = true; // İşaretlemeyi iptal eder
this.showMessage("Uyarı", "Önce tutarı girmelisiniz.", "Validation");
}
}

Sunucu (C#):

void CheckBox1_OnValueChanging(object sender, PropertyChangingEventArgs<bool> e)
{
if (e.NewValue == true)
{
e.Cancel = true;
ShowMessage("Uyarı", "Önce tutarı girmelisiniz.",
Bimser.CSP.FormControls.RuleManager.AlertType.Validation);
}
}

İpuçları

  • Onay kutusunu zorunlu yapmak için Required özelliğini kullanın; "Şartları kabul ediyorum" gibi alanlarda kutu işaretlenmeden form kaydedilmez.
  • Bir CheckBox işaretlendiğinde başka bir nesneyi gösterip gizlemek için OnValueChanged olayında ilgili nesnenin Visible özelliğini ayarlayın.
  • Değer her zaman true ya da false olduğu için if (CheckBox1.Value) yazmanız yeterlidir; ayrıca == true eklemenize gerek yoktur.
Tüm tasarımcı özellikleri (tam liste)

General: Name, Field Name

Label: Caption, Text, Position, Left, Width, Height, Font (Bold / Italic / Underline), Ellipsis, Visible, Show Colon, Horizontal Align, Vertical Align, Mark Char, Mark Position

Behavior: ReadOnly, Required, Tab Index

Appearance: Client Enabled, Client Visible, Enabled, Label, Title, Value, Visible

Olaylar (Client): OnInit, OnLoad, OnPreRender, OnRender, OnPropertyChanging, OnPropertyChanged, OnClick, OnDoubleClick, OnDataLoad, OnValidating, OnValueChanging, OnValueChanged

Olaylar (Server): OnInit, OnLoad, OnRender, OnValidating, OnValueChanging, OnValueChanged