技術(shù) 點
- 技術(shù)
- 點
- V幣
- 點
- 積分
- 549
|
本帖最后由 紫電 于 2014-3-28 23:08 編輯
1、稍后添加,防止晚上發(fā)帖要審核。
二、DropDown、ComboBox、SplitButton用法詳解。
1、DropDown:表示用戶可以從中進行選擇的項列表和用戶可以單擊的功能區(qū)按鈕列表。
用法:
RibbonDropDown 可以包含 RibbonDropDownItem 對象和 RibbonButton 控件。
在運行時,可以使用 RibbonFactory 對象的 CreateRibbonDropDown 方法創(chuàng)建 RibbonDropDown。
有兩種方法可訪問 RibbonFactory 對象:
- 使用功能區(qū)類的 Factory 屬性。 請通過功能區(qū)類中的代碼使用此方法。
- 使用 Globals.Factory.GetRibbonFactory 方法。 請通過功能區(qū)類之外的代碼使用此方法。
在功能區(qū)加載到 Office 之后,您不能在運行時向 Buttons 集合中添加按鈕。
注意點:
(1)、上面就是說不能添加RibbonButton,運行時是可以添加RibbonDropDownItem的。
(2)、在Ribbon設(shè)計器中,就這么寫: this.Factory
在其他地方就這么寫:RibbonFactory MyFactory = Globals.Factory.GetRibbonFactory();
Excel用法舉例:
點一下,如果是item,就會改變表面的字;按鈕只能是設(shè)計模式的時候添加,所以這貨不好使,很用用到它。找了許久只找到一個,如下代碼實例:
- private void dropYY_ItemsLoading(object sender, RibbonControlEventArgs e)
- {
- dropYY.Items.Clear();
- foreach (KeyValuePair<string, RibbonDropDownItem> Item in m_RunMyControl.GetControls())
- {
- dropYY.Items.Add(Item.Value);
- }
- }
復(fù)制代碼 2、ComboBox:表示自定義功能區(qū)上的組合框。
用法:
組合框在下拉菜單中為用戶提供了一個文本輸入字段和一個選項列表。
在運行時,可以使用 RibbonFactory 對象的 CreateRibbonComboBox 方法創(chuàng)建 RibbonComboBox。
有兩種方法可訪問 RibbonFactory 對象:
- 使用功能區(qū)類的 Factory 屬性。 請通過功能區(qū)類中的代碼使用此方法。
- 使用 Globals.Factory.GetRibbonFactory 方法。 請通過功能區(qū)類之外的代碼使用此方法。
此類型的某些成員只能在功能區(qū)加載到 Office 應(yīng)用程序之前設(shè)置。
注意點:
這貨只能使用RibbonDropDownItem,選中了,就改變了文本框中的字符,字符也可以手動打進去。
Excel用法舉例:Excel中還挺多的,鼠標點下框,能打字的帶下拉箭頭的,都是它!
代碼實例:
- #region 第三種實現(xiàn)方法,支持手動輸入頻道號、房間號
- //房間號
- private void cmbYY_TextChanged(object sender, RibbonControlEventArgs e)
- {
- string RoomID = "";
- if (m_CmbItems.ContainsKey(cmbYY.Text))
- {
- //存在此房間
- RoomID = m_CmbItems[cmbYY.Text].Tag.ToString();
- cmbYY.SuperTip = "您選擇的房間號為:" + RoomID;//顯示房間號
- editYY.Text = m_RunMyControl.DefalutChannel.Value;//重置頻道號
- editYY.SuperTip = "您選擇的頻道號為:" + m_RunMyControl.DefalutChannel.Key;
- m_RunMyControl.EnterYYRoom(RoomID);
- }
- else if ("" == cmbYY.Text)
- {
- return;//不能為空,退出,等待輸入數(shù)據(jù)
- }
- else if (! m_RunMyControl.IsNumeric(cmbYY.Text))
- {
- //不能為非數(shù)字的字符
- cmbYY.Text="";
- cmbYY.SuperTip = "";
- System.Windows.Forms.MessageBox.Show("不能輸入非數(shù)字的頻道號!");
- return;
- }
- else
- {
- //檢測頻道號
- if (m_RunMyControl.DefalutChannel.Value == editYY.Text || "" == editYY.Text)
- {
- //自定義打開YY時,不允許使用默認的頻道號
- editYY.Text = "";
- editYY.SuperTip = "";
- cmbYY.SuperTip = "";
- System.Windows.Forms.MessageBox.Show("請輸入頻道號");
- }
- else
- {
- //一切正常,打開YY
- RoomID = cmbYY.Text;
- cmbYY.SuperTip = "您選擇的房間號為:" + RoomID;//顯示房間號
- m_RunMyControl.EnterYYRoom(RoomID,editYY.Text);
- }
- }
- }
- //頻道號
- private void editYY_TextChanged(object sender, RibbonControlEventArgs e)
- {
- if ("" == editYY.Text )
- {
- return;//頻道號不能為空,退出等待輸入!
- }
- else if (! m_RunMyControl.IsNumeric(editYY.Text))
- {
- //不能為非數(shù)字的字符
- editYY.Text = "";
- editYY.SuperTip = "";
- System.Windows.Forms.MessageBox.Show("不能輸入非數(shù)字的頻道號!");
- return;
- }
- else if (m_CmbItems.ContainsKey(cmbYY.Text) || "" == cmbYY.Text)
- {
- //自定義打開YY時,不允許使用現(xiàn)有的頻道號,房間號不允許為空
- cmbYY.Text = "";
- cmbYY.SuperTip = "";
- editYY.SuperTip = "";
- System.Windows.Forms.MessageBox.Show("請輸入房間號");
- }
- else
- {
- //一切正常,打開YY
- m_RunMyControl.EnterYYRoom(cmbYY.Text, editYY.Text);
- }
- }
- #endregion
復(fù)制代碼
|
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?注冊
x
|