乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      WeifenLuo.WinFormsUI控件使用的一個例子

       hxdou 2012-08-16
      WeifenLuo.WinFormsUI控件使用的一個例子
       

      WeifenLuo.WinFormsUI.DockContent這個控件不錯, 可以很方便地實現(xiàn)如vs 2005里那種窗口定位, 浮動, dock, tab化等界面效果.
      下面是一個小例子:

      ××××××××××××××××××××××××××××××××××××××××××××
      dockpanel中提供了幾個可用的類, 重要的有兩個, 一是DockPanel, 一是DockContent,
      DockPanel是從panel繼承出來的, 用于提供可浮動的dock的子窗口進(jìn)行浮動和dock的場所,
      DockContent是從form類中繼承出來的, 用于提供可浮動的窗口基類. 就是說: DockContent對象可以在DockPanel對象中任意貼邊, 浮動, TAB化等.
      建立一個dockpanel風(fēng)格的程序的過程是:
      1. 建立一個winform程序, 引用WinFormsUI.dll;
      2. 程序主窗口比如說是FrmMain; 把FrmMain.IsMdiContainer 設(shè)置為true;
      3. 在FrmMain中放一個DockPanel, 比如說名稱是Panel1, 把Panel1.Dock設(shè)為Fill, 或是者是你規(guī)劃的地方.
      4. 新建你的子文檔窗口類, 就是新建一個windows FORM, 在窗口設(shè)計器里面隨便你添上什么愿意要的控件. 這將是你的程序里的子窗口, 我弄了兩個:
      一個叫FrmChild, 里面放了一個dock fill的editbox,
      另一個叫FrmProperty, 放了一個dock fill的PropertyGrid, 名叫propertyGrid1,
      并將 editbox,propertyGrid1都設(shè)置為公有成員。
      5. 打開FrmChild和FrmProperty的代碼, 把class的繼承類由Form改為DockContent;
      如:
      public class FrmChild : WeifenLuo.WinFormsUI.DockContent // 注意這里改了!
      {

      }

      6. 為FrmMain加上兩個私有成員:
      FrmChild fc;
      FrmProperty fp;
      這兩個成員用來保存待會兒新建的兩個窗口的指針.
      7. 為FrmMain的Load寫些代碼, 如下:


      fc = new FrmChild();
      fp = new FrmProperty();
      fc.Show(this.dockPanel1);
      fp.Show(this.dockPanel1,WeifenLuo.WinFormsUI.DockState.DockLeft);

      fp.propertyGrid1.SelectedObject = fc;
      fp.propertyGrid1.PropertyValueChanged +=new PropertyValueChangedEventHandler(propertyGrid1_PropertyValueChanged);

      fc.MouseDown +=new MouseEventHandler(fc_MouseDown);
      fc.MouseUp +=new MouseEventHandler(fc_MouseUp);

      就是建立兩個窗口, 這兩個窗口都是從DockContent中繼承的, 都有貼邊, tab化, 自動hide的能力, 很有意思的.
      注意DockContent有新的Show()方法, 可以指定要Show的DockPanel, 當(dāng)然要寫上你準(zhǔn)備的那個dockPanel1;
      兩個都Show了, 然后為fp的propertyGrid1指定要顯示的對象, 就是fc;
      之后再注冊事件處理程序, 這幾句是為了可以實現(xiàn)屬性變了窗口變, 窗口變了屬性變的效果, 可以動態(tài)地看到這些對象的屬性對于其外觀和形為的影響, 對于只想建個多窗口程序的人來說, Show完了就可了.
      8. 由于上面注冊的事件, 下面加幾個事件處理程序:


      private void propertyGrid1_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
      {

      this.dockPanel1.Invalidate();
      this.fc.Invalidate();
      //this.fc.Refresh();

      }

      private void fc_MouseDown(object sender, MouseEventArgs e)
      {
      this.fp.propertyGrid1.Refresh();
      }

      private void fc_MouseUp(object sender, MouseEventArgs e)
      {
      this.fp.propertyGrid1.Refresh();

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多