Skip to main content

Ribbon

Form üzerinde sekmeli bir komut şeridi oluşturan kapsayıcı nesnedir. Office programlarındaki üst şeride benzer; sekmelere ayrılmış düğme ve seçenekleri tek bir yerde toplar.

Bu nesnenin tek bir Value değeri yoktur. Ribbon bir kapsayıcı (container) nesnesidir; içine yerleştirdiğiniz şerit öğelerini (RibbonItems) barındırır ve o an seçili öğeyi (SelectedItem / SelectedIndex) tutar. Bir öğeye tıklanması veya seçili sekmenin değişmesi için kendi olaylarını (OnRibbonItemClick, OnRibbonItemChange) sunar.

Ne zaman kullanılır?

Bir formda çok sayıda işlemi düzenli bir şekilde gruplamak istediğinizde kullanın. Örneğin "Genel", "Detay", "Onay" gibi sekmeler altında ilgili alanları ya da düğmeleri toplamak için uygundur. Tek bir işlem düğmesi yeterliyse Button, basit gruplama içinse Panel daha sade kalır.

Tasarımcı özellikleri

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

General

ÖzellikAçıklama
NameNesnenin koddaki adı (ör. Ribbon1). Koddan bu adla erişirsiniz.

Behavior

ÖzellikAçıklama
RibbonItemsŞeritteki öğelerin (sekmelerin) listesi (List<RibbonItem>). Tasarımcıdan eklenir, koddan da yönetilebilir.
SelectedIndexO an seçili olan öğenin sıra numarası (Int32, 0'dan başlar). Koddan atayarak aktif sekmeyi değiştirebilirsiniz.
SelectedItemO an seçili olan şerit öğesinin kendisi (RibbonItem).
ReadOnlyŞeridi salt okunur yapar; kullanıcı seçim değiştiremez.

Appearance

ÖzellikAçıklama
Visible / Client VisibleNesnenin görünürlüğü (sunucu / tarayıcı tarafı).
Enabled / Client EnabledNesnenin aktif olup olmadığı (sunucu / tarayıcı tarafı).
CaptionNesnenin etiketi/başlığı (ControlCaption).
TitleŞeridin başlığı (MultiLanguageText, çok dilli olabilir).

RibbonItem nesnesi

RibbonItems listesindeki her bir öğe bir RibbonItem nesnesidir. Sekmeleri/düğmeleri koddan okumak veya değiştirmek için bu üyeleri kullanırsınız.

ÜyeTipAçıklama
KeyStringÖğenin benzersiz anahtarı. Koddan ayırt etmek için kullanılır.
TitleDictionary<String,String>Öğenin çok dilli başlığı (ör. { ["tr-TR"] = "Genel" }).
IconStringÖğe simgesi.
ValueObjectÖğeye bağlı değer.
ItemsList<RibbonItem>Alt öğeler (iç içe şerit öğeleri).
TypeRibbonToolbarItemType?Öğenin türü (aşağıdaki enum).
ItemTypeToolbarItemType?Yerleşim türü (IHorizontalContainer / IVerticalContainer).
DisabledBoolean?Öğeyi tek tek pasifleştirir.
SelectedBoolean?Öğenin seçili olup olmadığı.
OrderNoInt32?Sıralama numarası.
ShortCutStringKısayol tuşu tanımı.

RibbonToolbarItemType değerleri: Text, Number, Date, Time, DateRangePicker, ColorPicker, FontFamily, FontDecoration, BorderStyle, Divider, Button, ButtonGroup, Custom.

Olaylar

Ribbon bir kapsayıcı olsa da, kendine ait üç olayı vardır: bir şerit öğesine tıklanması, aktif sekmenin değişmesi ve şeridin çizilmesi. Olaylar sunucu tarafında C# kodunda işlenir; her olayın parametresi (e) tıklanan/değişen öğeyi (RibbonItem Item) taşır.

Sunucu olayları (Server)

Olay (giriş noktası)Parametre tipiNe zaman çalışır
OnRibbonItemClickRibbonItemClickEventArgsBir şerit öğesine (düğme/sekme) tıklandığında. e.Item tıklanan öğedir.
OnRibbonItemChangeRibbonItemChangeEventArgsAktif (seçili) şerit öğesi değiştiğinde. e.Item yeni seçili öğedir.
OnRibbonRenderRibbonRenderEventArgsŞerit ekrana çizilirken. e.Item ilgili öğedir.

Üç olayın e parametresi de yalnızca Item (RibbonItem) ve ResponseParameters üyelerini taşır.

Kod örnekleri

Ribbon'ın Value değeri olmadığı için okuma/yazma görünürlük, aktiflik, seçili öğe ve şerit öğeleri üzerinden yapılır. Sunucu örnekleri turuncu, istemci örnekleri kırmızı çerçevelidir.

Form kodu (C#, sunucu)

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

// Görünürlük ve aktiflik
Ribbon1.Visible = true;
Ribbon1.Enabled = false;

// O an seçili sekmeyi oku
int seciliIndex = Ribbon1.SelectedIndex;
RibbonItem seciliOge = Ribbon1.SelectedItem;
string seciliKey = seciliOge?.Key;

// Belirli bir sekmeye programlı olarak geç
Ribbon1.SelectedIndex = 1;

// Şerit öğelerini dolaş ve bir sekmeyi tek tek pasifleştir
foreach (RibbonItem oge in Ribbon1.RibbonItems)
{
if (oge.Key == "Onay")
{
oge.Disabled = true;
}
}

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

Akış kodunda nesneye Document1.Controls üzerinden erişirsiniz. Bu erişim genel (Control) bir yüzey döndürür; .Visible, .Enabled gibi ortak özelliklere ulaşırsınız. SelectedIndex / SelectedItem / RibbonItems gibi Ribbon'a özgü üyeler için form kodunu (yukarıdaki bölüm) ya da tipli erişimi kullanın.

// Görünürlük ve aktiflik (genel Control yüzeyi)
Document1.Controls["Ribbon1"].Visible = true;
Document1.Controls["Ribbon1"].Enabled = false;

İstemci kodu (TypeScript, tarayıcı)

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

// Görünürlük ve aktiflik
this.Ribbon1.visible = true;
this.Ribbon1.enabled = false;

// O an seçili sekmenin sıra numarası
const seciliIndex = this.Ribbon1.selectedIndex;

// Belirli bir sekmeye geç
this.Ribbon1.selectedIndex = 1;

Örnek: şerit öğesine tıklamaya tepki verme (OnRibbonItemClick)

OnRibbonItemClick, kullanıcı bir şerit öğesine (düğme/sekme) tıkladığında çalışır. Tıklanan öğeyi e.Item.Key ile ayırt edebilirsiniz.

void Ribbon1_OnRibbonItemClick(object sender, RibbonItemClickEventArgs e)
{
RibbonItem tiklanan = e.Item;

if (tiklanan?.Key == "Kaydet")
{
// Kaydet düğmesine özgü iş mantığı
ShowMessage("Bilgi", "Kayıt işlemi başlatıldı.",
Bimser.CSP.FormControls.RuleManager.AlertType.Info);
}
}

Örnek: aktif sekme değişince çalıştırma (OnRibbonItemChange)

OnRibbonItemChange, seçili (aktif) sekme değiştiğinde çalışır. Yeni seçili öğe e.Item ile gelir; sekmeye göre formun ilgili bölümlerini düzenleyebilirsiniz.

void Ribbon1_OnRibbonItemChange(object sender, RibbonItemChangeEventArgs e)
{
string yeniSekme = e.Item?.Key;

// "Onay" sekmesine geçildiğinde onay alanını göster
OnayPanel.Visible = (yeniSekme == "Onay");
}
Ribbon bir kapsayıcıdır

Ribbon kendisi alan verisi tutmaz. Asıl içerik içine eklediğiniz şerit öğelerinde (RibbonItems) ve o öğelerin içindeki nesnelerdedir. Bir alanın değerini okumak için Ribbon'a değil, içindeki ilgili nesneye erişin. Şeridin durumunu (hangi sekme seçili, hangi öğe tıklandı) okumak içinse SelectedItem / SelectedIndex ve OnRibbonItemClick / OnRibbonItemChange olaylarını kullanın.

İpuçları

  • Sekmeleri "Genel", "Detay", "Onay" gibi anlamlı başlıklarla adlandırın; kullanıcı aradığı alanı hızlıca bulur. Koddan ayırt etmek için her öğeye anlamlı bir Key verin.
  • Bir sekmeyi koşula göre gizlemek/pasifleştirmek için Ribbon'ın tamamını değil, ilgili RibbonItem öğesini yönetin (oge.Disabled = true).
  • Aktif sekmeyi koddan değiştirmek için SelectedIndex atayın; hangi sekmeye geçildiğini yakalamak için OnRibbonItemChange olayını kullanın.
  • Yalnızca tek bir işlem düğmesine ihtiyacınız varsa Ribbon yerine sade bir Button kullanmak formu daha temiz tutar.
Tüm tasarımcı özellikleri (tam liste)

General: Name, ControlId

Behavior: ReadOnly, RibbonItems, SelectedIndex, SelectedItem, DefaultReadOnly

Appearance: Caption, Title, Visible, Client Visible, Enabled, Client Enabled, DefaultEnabled, DefaultClientEnabled, Style, ContainerStyle, CustomClassName, Loading

Bağlam menüsü: ContextMenuKey, ContextMenuColumnKey, ContextMenuTarget

Olaylar (Server): OnRibbonItemClick, OnRibbonItemChange, OnRibbonRender

Olay altyapısı: ServerEvents, ClientEvents, ExecutedServerEvents