Ana içeriğe geç

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

ÖzellikAçıklama
NameNesnenin 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.

ÖzellikAçıklama
CaptionBaşlık metni (çok dilli olabilir). ControlCaption içindeki yazı, hizalama, konum gibi ayarları taşır.
TitleNesnenin üzerine gelindiğinde görünen ipucu yazısı (MultiLanguageText).
VisibleBaşlığı gösterir veya gizler.

Behavior

ÖzellikAçıklama
MetadataTypeHangi başlığın gösterileceğini belirler: FormCaption (form başlığı) ya da ProjectCaption (proje başlığı). Bu nesnenin en önemli özelliğidir.
FontYazı tipi, kalın / italik / altı çizili.
HeightNesnenin yüksekliği (Nullable<Int32>).
LineHeightSatır yüksekliği (Nullable<Single>).
Salt gösterim nesnesidir

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

ÖzellikAçıklama
Visible / Client VisibleNesnenin görünürlüğü (Visible / ClientVisible).
Enabled / Client EnabledNesnenin aktif olup olmadığı (Enabled / ClientEnabled).
TextEkranda görünen metin (MultiLanguageText). MetadataType seçimine göre sistem doldurur.
Text AlignYazının yatay hizası (HorizontalAlign: Left / Center / Right).
Style / Container StyleNesnenin ve sarmalayan hücrenin görsel stili (Style: arka plan, yükseklik, padding).
Custom Class NameNesneye 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ğerGösterilen başlık
FormCaptionFormun başlığı (caption).
ProjectCaptionFormun 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)

OlayNe zaman çalışır
OnClickNesneye tıklanınca (MouseEventArgs). VisualControl tabanından gelir.
OnDoubleClickNesneye ç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)

OlayNe zaman çalışır
OnClick / OnDoubleClickNesneye tıklanınca / çift tıklanınca.

İstemci tarafında handler bağlamak için ClientEvents (List<EventItem>) listesi kullanılır.

Değer ve doğrulama olayları yoktur

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;
Başlığı tasarımcıdan ayarlayın

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 MetadataType değerlerini FormCaption ve ProjectCaption olarak 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()