Bu siteye giriş yaparak Çerez kullanımını kabul etmiş oluyorsunuz. İşbu sitede; çerez olarak, sadece son giriş tarihiniz ve eğer üye olursanız oturum statünüz tutulacaktır. Bunlar dışında başka hiçbir bilgi tutulmamaktadır. Çerezler için detaylı bilgi için buraya tıklayınız.
ANLADIM

DUYURULAR

Yeni eklenen ve/veya güncellenen sayfaları görmek için buraya tıklayınız.

Güncel ödev ve test listesini görmek için buraya tıklayınız.

Sitede yapılan iyileştirmeAer ve hata düzeltmelerine ait tüm bilgilendirmeleri görmek içinburaya tıklayınız.

Baş
Udemy
Konular
Son
Konular
Taskpane
CoreVSTO
VSTO
VSTOGörsel Araçlar2

Taskpane

Taskpane kullanımı oldukça basittir. Peki nerede kullanırız. Aslında aklınıza gelebilecek herşey için kullanabilirsiniz. Excel'in kendi built-in taskpanelerini düşünün. Onlardan herhangi birine benzer bir amacınız olabileceği gibi, ribbonlardaki çeşitli seçenekleri Taskpane'den de vermeyi tercih edebilirsiniz. Mesela HTML dünyasındaki CSS'lere benzer bir yapıyı burada yaratabilrisiinz. Böylece Excel'in hazır styling şablonlarını uygulamak yerine kendinize ait yeni şablonlar yaratabilir ve bunları hızlıca tablolarınıza uygulayabilrsiniz. Veya Excel açıldığı sırada bir veritabanından çeşitli değerleri okuyabilir ve taskpane üzerinden bunlara ait işlemler yapabilirsiniz. Taskpaneden hızlı copy-paste yapmak gibi.

Dediğim gibi, aklınıza gelecek herşeyi yapabilirsiniz. Hadi hızlıca ne yapmak gerekiyor ona bakalım.

Yaratım

Malesef Toolbox içinden sürükle bırak şeklinde veya New Project Item deyip Ribbon yaratır gibi TaskPane yaratamıyoruz. Bunun için birkaç parça kod yazmamız gerekiyor.

User Control

Öncelikle, Project menüsüne sağ tıklayıp New Item diyerek bir adet User Control ekliyoruz. Bunun adına MyUserControl diyelim. Bu nesne, aslında bir Form nesnesi gibidir. İçine her tür form kontrolü konabilir.

Şimdi bu usercontrolün içeriğini istediğimiz kontrollerle dolduralım. Basit örnek olması adına şimdilik sadece bir buton ve combobox koyalım.

Usercontrol

Kod

İlk olarak ister ThisAddin içine ister Ribbon içine(hangisi ihtiyacımızı görüyorsa) ana nesne değişkenlerini tanımlarız, sonra da nerden tetikleyeceksek orada taskpane yaratım kodlarını. Ben Ribbondan açmayı düşündüğüm için ribbona bir buton ekledim, global değişkenlerimi de ona göre olşuturacağım.

public partial class Ribbon1
    {
        public MyUserControl myusercontrol1; //taskpane için
        public Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane; //taskpane için
    
        //Aradaki diğer kodlar
	
	private void button30_Click(object sender, RibbonControlEventArgs e)
        {
            this.myusercontrol1 = new MyUserControl();
            this.myCustomTaskPane = Globals.ThisAddIn.CustomTaskPanes.Add(this.myusercontrol1, "İlk Task Pane");
            this.myCustomTaskPane.Visible = true;
            this.myCustomTaskPane.Width = 200;
        }	
    }  

Bu butona tıkladığımızda sağ tarafta TaskPane'imiz açılır.

Kullanım

Şimdi bu TaskPane ile basit birkaç iş yapalım.

Öncelikle diyelim ki, taskpane açılır açılmaz, combobox'ın içeriği dolsun. Butona basılınca da comboboxta seçili olan değeri aktif hücreye yazdıralım.

    public partial class MyUserControl : UserControl
    {
        public Microsoft.Office.Interop.Excel.Application app = Globals.ThisAddIn.Application;
        public MyUserControl()
        {
            InitializeComponent();
        }

        private void MyUserControl_Load(object sender, EventArgs e)
        {
            this.comboBox1.Items.Add(1);
            this.comboBox1.Items.Add(2);
            this.comboBox1.SelectedIndex = 0; //ilk değeri seçiyoruz
        }

        private void button1_Click(object sender, EventArgs e)
        {
            app.ActiveCell.Value = this.comboBox1.SelectedItem.ToString();
        }
    }

Daha kompleks bir örnek

Bu örnekte Taskpane'imizi hem içerik olarak zenginleştireceğiz. Hem de .Net dünyasının nimetlerinden faydalanacağız.

EDIT:Bu örneğin yerini değiştirip Örnek Projeler içine almaya karar verdim. Zira burada aşağıdaki ileri c# konularının kullanımı da sözkonusu.

  • Async/await keywordleri
  • DataGridView
  • LINQ syntaxı

TEST SORULARI

Son Sorumuz şuymuş:Bir metindeki tüm noktaları yoketmek istiyorsunuz. Hangi fonksiyonu kullanırdınız?
Soru:

A şıkkı:

B şıkkı:

C şıkkı:

D şıkkı:

Doğru Cevap Etiketler

İlişkili konuyu seç

285092

Label
* Sorulara verilen yanlış cevaplardaki esprili yorumlarım için hoşgörünüze sığınıyorum.
* Test ve Ödevlerdeki bazı detaylar burada anlatılmamış olabilir. Bunları kendiniz araştırıp bulmalısınız.
* Birden çok konuya ait içeriği olan ödevler var. Algoritmik açıdan bakıldığında o an en uygun konuya adreslenmiştir.
Dikkat! Bir soruya cevap verdikten sonra geri dönemezsiniz.
0
0
0
0

SoruID:... Şu an için bu konu için soru bulunmamaktadır. İletişim menüsünden örnek sorularınızı bana iletebilirsiniz.




ÖDEVLER

0
0
ÖdevNo:... Şu an için bu konu için ödev bulunmamaktadır. İletişim menüsünden örnek ödev sorularını bana iletebilirsin.
Çözüme bakın(Başka türlü de çözülebilir tabi, bu benim çözümüm.)




=YORUMLAR ve SORULAR=


DEVİR UYARISI

Herkese merhaba. Hosting maliyetlerinin aşırı artması yüzünden sitemi yakın zamanda(en geç Mayıs 2023) kapatmaya karar vermiştim. Ancak, siteyi yakından takip eden bir arkadaş siteyi devralmak istemiştir. Siteyi, Mayıs ayında kendisine devir etmeye karar verdim. Üyelik bilgilerini bana güvenerek girdiğiniz için, hepsini silmiş bulunuyorum, yani mail adreslerinizi kimseyle paylaşmamış olacağım. Bilginizi rica ederim.