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
| Özellik | Açıklama |
|---|---|
Name | Nesnenin koddaki adı (ör. Ribbon1). Koddan bu adla erişirsiniz. |
Behavior
| Özellik | Açıklama |
|---|---|
RibbonItems | Şeritteki öğelerin (sekmelerin) listesi (List<RibbonItem>). Tasarımcıdan eklenir, koddan da yönetilebilir. |
SelectedIndex | O an seçili olan öğenin sıra numarası (Int32, 0'dan başlar). Koddan atayarak aktif sekmeyi değiştirebilirsiniz. |
SelectedItem | O an seçili olan şerit öğesinin kendisi (RibbonItem). |
ReadOnly | Şeridi salt okunur yapar; kullanıcı seçim değiştiremez. |
Appearance
| Özellik | Açıklama |
|---|---|
Visible / Client Visible | Nesnenin görünürlüğü (sunucu / tarayıcı tarafı). |
Enabled / Client Enabled | Nesnenin aktif olup olmadığı (sunucu / tarayıcı tarafı). |
Caption | Nesnenin 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.
| Üye | Tip | Açıklama |
|---|---|---|
Key | String | Öğenin benzersiz anahtarı. Koddan ayırt etmek için kullanılır. |
Title | Dictionary<String,String> | Öğenin çok dilli başlığı (ör. { ["tr-TR"] = "Genel" }). |
Icon | String | Öğe simgesi. |
Value | Object | Öğeye bağlı değer. |
Items | List<RibbonItem> | Alt öğeler (iç içe şerit öğeleri). |
Type | RibbonToolbarItemType? | Öğenin türü (aşağıdaki enum). |
ItemType | ToolbarItemType? | Yerleşim türü (IHorizontalContainer / IVerticalContainer). |
Disabled | Boolean? | Öğeyi tek tek pasifleştirir. |
Selected | Boolean? | Öğenin seçili olup olmadığı. |
OrderNo | Int32? | Sıralama numarası. |
ShortCut | String | Kı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 tipi | Ne zaman çalışır |
|---|---|---|
OnRibbonItemClick | RibbonItemClickEventArgs | Bir şerit öğesine (düğme/sekme) tıklandığında. e.Item tıklanan öğedir. |
OnRibbonItemChange | RibbonItemChangeEventArgs | Aktif (seçili) şerit öğesi değiştiğinde. e.Item yeni seçili öğedir. |
OnRibbonRender | RibbonRenderEventArgs | Ş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 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
Keyverin. - 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
SelectedIndexatayın; hangi sekmeye geçildiğini yakalamak içinOnRibbonItemChangeolayı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