FormMetadata
Formun ya da projenin başlığını (caption) ekranda gösteren, salt gösterim amaçlı bir etiket nesnesidir. Hangi başlığın yazılacağını MetadataType özelliği belirler: form başlığı (FormCaption) ya da proje başlığı (ProjectCaption). Metni kullanıcı girmez; sistem MetadataType seçimine göre doldurur.
Bu nesne bir Label gibi davranır: bir değeri (Value) yoktur, yalnızca gösterdiği bir metni (Text) vardır. Sınıf hiyerarşisi LabelBase üzerinden gelir, dolayısıyla giriş kontrollerine ait ReadOnly, Required ya da doğrulama (validation) özellikleri burada yoktur.
Ne zaman kullanılır?
Formun üzerinde formun ya da içinde bulunduğu projenin başlığını otomatik göstermek istediğinizde kullanılır. Başlık koddan değil, tasarımcıdaki MetadataType seçiminden belirlenir.
- Serbest, sabit bir metin göstermek için Label,
- Kullanıcının elle yazacağı bir alan için TextBox,
- Oturum açan kullanıcının bir bilgisini (ad, departman, pozisyon gibi) göstermek için UserMetadata,
- Dokümanın kimliğini ya da oluşturma tarihini göstermek için DocumentMetadata
daha uygundur.
Değer tipi: Bu nesnenin bir değeri (Value) yoktur. Gösterdiği metni (Text, MultiLanguageText tipinde) MetadataType seçimine göre sistem belirler.
Tasarımcı özellikleri
Bir FormMetadata seçildiğinde Özellik Görüntüleyici sekmelere ayrılır.
General
| Özellik | Açıklama |
|---|---|
Name | Nesnenin koddaki adı (ör. FormMetadata1). Koddan bu adla erişirsiniz. |
Caption
Nesnenin başlık/etiket bloğunu yönetir. Bu blok koddaki Caption (ControlCaption) özelliğine karşılık gelir; ayrı bir Label özelliği yoktur.
| Özellik | Açıklama |
|---|---|
Caption | Başlık metni (çok dilli olabilir). ControlCaption içindeki yazı, hizalama, konum gibi ayarları taşır. |
Title | Nesnenin üzerine gelindiğinde görünen ipucu yazısı (MultiLanguageText). |
Visible | Başlığı gösterir veya gizler. |
Behavior
| Özellik | Açıklama |
|---|---|
MetadataType | Hangi başlığın gösterileceğini belirler: FormCaption (form başlığı) ya da ProjectCaption (proje başlığı). Bu nesnenin en önemli özelliğidir. |
Font | Yazı tipi, kalın / italik / altı çizili. |
Height | Nesnenin yüksekliği (Nullable<Int32>). |
LineHeight | Satır yüksekliği (Nullable<Single>). |
FormMetadata bir giriş kontrolü değildir; bu yüzden ReadOnly, Required ve TabIndex özellikleri yoktur. Bunlar LabeledInputBase zincirindeki giriş kontrollerine aittir, FormMetadata ise LabelBase zincirinden gelir.
Appearance
| Özellik | Açıklama |
|---|---|
Visible / Client Visible | Nesnenin görünürlüğü (Visible / ClientVisible). |
Enabled / Client Enabled | Nesnenin aktif olup olmadığı (Enabled / ClientEnabled). |
Text | Ekranda görünen metin (MultiLanguageText). MetadataType seçimine göre sistem doldurur. |
Text Align | Yazının yatay hizası (HorizontalAlign: Left / Center / Right). |
Style / Container Style | Nesnenin ve sarmalayan hücrenin görsel stili (Style: arka plan, yükseklik, padding). |
Custom Class Name | Nesneye eklenecek özel CSS sınıfı (CustomClassName). |
MetadataType değerleri
MetadataType özelliği FormMetadataType enum tipindedir ve yalnızca iki değer alır:
| Değer | Gösterilen başlık |
|---|---|
FormCaption | Formun başlığı (caption). |
ProjectCaption | Formun bağlı olduğu projenin başlığı (caption). |
Olaylar
FormMetadata salt gösterim amaçlı bir etiket olduğu için değer (value), doğrulama (validation) ya da değer değişimi olayları yoktur. Gerçekte sunduğu etkileşim yüzeyi tıklama olaylarıyla sınırlıdır; bunlar VisualControl tabanından gelir. Olay bağlama (binding) ise her nesnede ortak olan ServerEvents ve ClientEvents listeleri üzerinden yapılır.
Olaylar iki tarafta çalışabilir: sunucu olayları C# kodunda, istemci olayları tarayıcıdaki TypeScript kodunda.
Sunucu olayları (Server)
| Olay | Ne zaman çalışır |
|---|---|
OnClick | Nesneye tıklanınca (MouseEventArgs). VisualControl tabanından gelir. |
OnDoubleClick | Nesneye çift tıklanınca (MouseEventArgs). |
Bunların dışında sunucu tarafında handler bağlamak için ServerEvents (List<EventItem>) listesi kullanılır.
İstemci olayları (Client)
| Olay | Ne zaman çalışır |
|---|---|
OnClick / OnDoubleClick | Nesneye tıklanınca / çift tıklanınca. |
İstemci tarafında handler bağlamak için ClientEvents (List<EventItem>) listesi kullanılır.
Bu nesnede OnValidating, OnValueChanging, OnValueChanged gibi olaylar bulunmaz; çünkü FormMetadata bir değer taşımaz. Aynı şekilde OnDataLoad / OnPreRender gibi olaylar da bu nesne için doğrulanmamıştır. Bir değeri doğrulamak ya da değişimini yakalamak istiyorsanız giriş kontrollerini (ör. TextBox) kullanın.
Kod örnekleri
FormMetadata'nın gösterdiği metni sistem doldurur; siz çoğunlukla bu metni yalnızca okursunuz. Sunucu örnekleri turuncu, istemci örnekleri kırmızı çerçevelidir.
Form kodu (C#, sunucu)
Form kodunda nesneye doğrudan adıyla erişirsiniz:
// Oku (gösterilen başlık metni)
string baslik = FormMetadata1.Text;
Akış (Flow) kodu (C#, sunucu)
Akış kodunda nesneye Document1.Controls üzerinden erişirsiniz:
// Oku
string baslik = Document1.Controls["FormMetadata1"].Text?.ToString();
İstemci kodu (TypeScript, tarayıcı)
İstemci tarafında nesnelere this. ile erişilir ve özellik adları küçük harfle yazılır (text):
const baslik = this.FormMetadata1.text;
FormMetadata'nın gösterdiği metin MetadataType özelliğine göre sistem tarafından otomatik gelir. Bu yüzden metni elle set etmeniz beklenmez; genelde sadece okursunuz. Hangi başlığı göstereceğini koddan değil, tasarımcıdaki MetadataType seçiminden (FormCaption / ProjectCaption) ayarlayın.
Çalışma zamanı metotları
VisualControl tabanından gelen ve typed nesne üzerinden çağrılabilen etkileşim metotları:
FormMetadata1.Show(); // Nesneyi göster
FormMetadata1.Hide(); // Nesneyi gizle
FormMetadata1.ShowLoading(); // Yükleniyor göstergesini aç (Loading = true)
FormMetadata1.HideLoading(); // Yükleniyor göstergesini kapat
FormMetadata1.ToggleLoading(); // Yükleniyor göstergesini tersine çevir
FormMetadata1.ScrollTo(); // Nesneyi görünür alana kaydır
FormMetadata1.FireClick(); // OnClick handler'ını tetikle
Loading (Boolean) özelliği ShowLoading() / HideLoading() ile yönetilir; ekranda yükleniyor göstergesini açıp kapatır.
İpuçları
- Hem form başlığını hem proje başlığını aynı anda göstermek için iki ayrı FormMetadata nesnesi ekleyin ve
MetadataTypedeğerleriniFormCaptionveProjectCaptionolarak seçin. - Serbest sabit metin için bu nesne değil, Label kullanın; kullanıcıdan veri almak için TextBox kullanın.
ContextMenuKey/ContextMenuColumnKey/ContextMenuTargetözellikleriyle nesneye bir bağlam menüsü (ContextMenu) bağlayabilirsiniz.
Tüm tasarımcı özellikleri (tam liste)
General: Name
Caption: Caption (ControlCaption), Title, Visible
Behavior: MetadataType (FormCaption / ProjectCaption), Font, Height, LineHeight
Appearance: Visible, ClientVisible, Enabled, ClientEnabled, Text, TextAlign, Style, ContainerStyle, CustomClassName, Loading
Bağlam menüsü: ContextMenuKey, ContextMenuColumnKey, ContextMenuTarget
Durum (salt okunur / varsayılan): DefaultEnabled, DefaultClientEnabled, ControlId
Olay bağlama: ServerEvents, ClientEvents (List<EventItem>)
Olaylar (Server): OnClick, OnDoubleClick
Olaylar (Client): OnClick, OnDoubleClick
Çalışma zamanı metotları (VisualControl): Show(), Hide(), ShowLoading(), HideLoading(), ToggleLoading(), ScrollTo(), FireClick()