📄 frmmain.cs
字号:
}
if(doc.FileName!="")
doc.SaveFile();
}
private void SaveDocumentAs()
{
if(this.ActiveMdiChild==null)
return;
frmDocument doc=this.ActiveMdiChild as frmDocument;
if(doc==null || !doc.DocumentChanged)
return;
if(doc.FileName=="")
{
SaveDocument(doc);
return;
}
saveFileDialog1.ShowDialog();
if(saveFileDialog1.FileName=="")
return;
doc.FileName=saveFileDialog1.FileName;
doc.SaveFile();
}
private void LoadPopup(object sender, System.EventArgs e)
{
ButtonItem item=sender as ButtonItem;
if(item.Name=="bTextColor" || item.Name=="bTabColor")
{
DevComponents.DotNetBar.PopupContainerControl container=item.PopupContainerControl as PopupContainerControl;
ColorPicker clr=new ColorPicker();
container.Controls.Add(clr);
if(((ButtonItem)dotNetBarManager1.GetItem("bStyle2003")).Checked)
{
clr.BackColor=dotNetBarManager1.Bars[0].ColorScheme.BarBackground2;
clr.tabStrip1.Style=eTabStripStyle.Office2003;
}
clr.Location=container.ClientRectangle.Location;
container.ClientSize=clr.Size;
}
}
private void UnloadPopup(object sender, System.EventArgs e)
{
ButtonItem item=sender as ButtonItem;
if(item.Name=="bTextColor")
{
DevComponents.DotNetBar.PopupContainerControl container=item.PopupContainerControl as PopupContainerControl;
ColorPicker clr=container.Controls[0] as ColorPicker;
if(clr.SelectedColor!=Color.Empty)
{
frmDocument activedocument=this.ActiveMdiChild as frmDocument;
if(activedocument!=null)
activedocument.ExecuteCommand(item.Name,clr.SelectedColor);
}
}
else if(item.Name=="bTabColor")
{
DevComponents.DotNetBar.PopupContainerControl container=item.PopupContainerControl as PopupContainerControl;
ColorPicker clr=container.Controls[0] as ColorPicker;
if(clr.SelectedColor!=Color.Empty)
{
tabStrip1.ColorScheme.TabBackground=ControlPaint.LightLight(clr.SelectedColor);
tabStrip1.ColorScheme.TabBackground2=clr.SelectedColor;
tabStrip1.Refresh();
}
// Close popup menu, since it is not closed when Popup Container is closed...
item.Parent.Expanded=false;
}
}
private void ContainerLoadControl(object sender, System.EventArgs e)
{
BaseItem item=sender as BaseItem;
if(item==null)
return;
if(item.Name=="cTaskShowatstartup")
{
ControlContainerItem containerItem=item as ControlContainerItem;
CheckBox box=new CheckBox();
box.Text="Show at startup";
box.FlatStyle=FlatStyle.Flat;
box.Size = new System.Drawing.Size(95, 17);
box.TabStop=false;
box.Checked=true;
box.CheckedChanged+=new EventHandler(this.TaskPaneShowAtStartup);
containerItem.Control=box;
}
else if(item.Name=="dockTaskList")
{
// See DefinitionLoaded event handler for Customize menu assignment for the bar that is containing this dock item
DockContainerItem dockItem=item as DockContainerItem;
dockItem.Control=new TaskList();
// Setting Displayed property for DockContainerItem will make sure that its tab is displayed first
dockItem.Displayed=true;
}
else if(item.Name=="dockSearchResults")
{
// Just add the list box as a example...
DockContainerItem dockItem=item as DockContainerItem;
ListBox listbox=new ListBox();
// This will set the minimum size for the DockContainerItem
listbox.Size=new Size(32,32);
// Must let the DockContainerItem resize it at will...
listbox.IntegralHeight=false;
dockItem.Control=listbox;
}
}
private void ChangeDotNetBarStyle(eDotNetBarStyle style)
{
((ButtonItem)dotNetBarManager1.GetItem("bStyle2000")).Checked=(style==eDotNetBarStyle.Office2000);
((ButtonItem)dotNetBarManager1.GetItem("bStyle2003")).Checked=(style==eDotNetBarStyle.Office2003);
((ButtonItem)dotNetBarManager1.GetItem("bStyleXP")).Checked=(style==eDotNetBarStyle.OfficeXP);
dotNetBarManager1.Style=style;
if(style==eDotNetBarStyle.Office2003 || style==eDotNetBarStyle.OfficeXP)
{
if(dotNetBarManager1.IsThemeActive)
{
BaseItem item=dotNetBarManager1.GetItem("bThemes");
item.Visible=true;
((Bar)item.ContainerControl).RecalcLayout();
}
}
else if(dotNetBarManager1.IsThemeActive)
{
dotNetBarManager1.GetItem("bThemes").Visible=false;
}
if(style==eDotNetBarStyle.Office2003)
{
tabStrip1.Style=eTabStripStyle.OneNote;
dotNetBarManager1.Bars["barTaskPane"].BackColor=Color.Empty;
((ControlContainerItem)dotNetBarManager1.GetItem("cTaskShowatstartup")).Control.BackColor=dotNetBarManager1.Bars[0].ColorScheme.BarBackground2;
}
else
{
tabStrip1.Style=eTabStripStyle.Flat;
dotNetBarManager1.Bars["barTaskPane"].BackColor=Color.FromArgb(245,245,245);
((ControlContainerItem)dotNetBarManager1.GetItem("cTaskShowatstartup")).Control.BackColor=Color.FromArgb(245,245,245);
}
}
private void TaskPaneShowAtStartup(object sender, EventArgs e)
{
MessageBox.Show("This item is here for demonstration purposes only and code should be added to save the state of it.");
}
private void ManagerDefinitionLoaded(object sender, EventArgs e)
{
// Assign optional "Customize" menu to the bar that contains this item
dotNetBarManager1.Bars["barTaskList"].CustomizeMenu=(PopupItem)dotNetBarManager1.ContextMenus["bTaskListMenu"];
}
private void dotNetBarManager1_MouseEnter(object sender, System.EventArgs e)
{
// Sync Status-bar with the item tooltip...
BaseItem item=sender as BaseItem;
if(item==null)
return;
dotNetBarManager1.Bars["barStatus"].Items["lStatus"].Text=item.Tooltip;
// Disable timer...
if(item.Name=="bThemes" && timer1.Enabled)
{
timer1.Enabled=false;
((ButtonItem)item).ForeColor=Color.Empty;
}
}
private void dotNetBarManager1_MouseLeave(object sender, System.EventArgs e)
{
dotNetBarManager1.Bars["barStatus"].Items["lStatus"].Text="";
}
private void frmMain_Load(object sender, System.EventArgs e)
{
ChangeDotNetBarStyle(eDotNetBarStyle.Office2003);
EnableFileItems();
// This makes sure that Theme support is enabled by the end-user as well as present on this OS
if(dotNetBarManager1.IsThemeActive)
{
dotNetBarManager1.GetItem("bThemes").Visible=true;
timer1.Enabled=true;
}
// Neccessary for Automatic Tab-Strip Mdi support
tabStrip1.MdiForm=this;
// Setup Context menu for the barTaskList TabStrip...
Bar bar=dotNetBarManager1.Bars["barTaskList"];
dotNetBarManager1.SetContextMenuEx(bar,"bDockContext");
}
private void timer1_Tick(object sender, System.EventArgs e)
{
// Flash Item to attract attention...
ButtonItem item=dotNetBarManager1.GetItem("bThemes") as ButtonItem;
if(item.ForeColor==Color.Red)
item.ForeColor=Color.Empty;
else
item.ForeColor=Color.Red;
ProgressBarItem progress=dotNetBarManager1.GetItem("itemProgressBar") as ProgressBarItem;
if(progress.Value==progress.Maximum)
progress.Value=progress.Minimum;
else
progress.Increment(10);
}
private void EnableThemes(ButtonItem item)
{
bool bEnable=!item.Checked;
item.Checked=bEnable;
if(bEnable)
item.Text="Disable Themes";
else
item.Text="Enable Themes";
dotNetBarManager1.ThemeAware=bEnable;
if(bEnable)
tabStrip1.Style=eTabStripStyle.Themed;
else if(((ButtonItem)dotNetBarManager1.GetItem("bStyle2003")).Checked)
tabStrip1.Style=eTabStripStyle.Office2003;
else
tabStrip1.Style=eTabStripStyle.Flat;
this.Refresh();
}
private void SwitchWorkingMode(bool tabbedMdi)
{
if(tabbedMdi)
{
// Switch to Tabbed Mdi Interface
dotNetBarManager1.MdiSystemItemVisible=false;
tabStrip1.MdiTabbedDocuments=true;
dotNetBarManager1.Bars["windowlist"].Visible=false;
}
else
{
// Switch to standard Mdi Interface
tabStrip1.Visible=false;
dotNetBarManager1.MdiSystemItemVisible=true;
tabStrip1.MdiTabbedDocuments=false;
tabStrip1.MdiForm=null;
SyncMdiTabbedBar();
}
}
private void MdiClientControlAddRemove(object sender, ControlEventArgs e)
{
if(e.Control is Form)
SyncMdiTabbedBar();
}
private void SyncMdiTabbedBar()
{
if(tabStrip1.Visible)
{
// Hide window list bar
dotNetBarManager1.Bars["windowlist"].Visible=false;
}
else
{
if(this.MdiChildren.Length>0)
{
dotNetBarManager1.Bars["windowlist"].Visible=true;
dotNetBarManager1.Bars["windowlist"].DockLine=1;
dotNetBarManager1.Bars["windowlist"].RecalcLayout();
}
else
dotNetBarManager1.Bars["windowlist"].Visible=false;
}
}
private TabItem TabItemFromPoint(Point pClient)
{
if(!tabStrip1.ClientRectangle.Contains(pClient))
return null;
foreach(TabItem tab in tabStrip1.Tabs)
{
if(tab.Visible && tab.DisplayRectangle.Contains(pClient))
return tab;
}
return null;
}
private void dotNetBarManager1_PopupOpen(object sender, DevComponents.DotNetBar.PopupOpenEventArgs e)
{
BaseItem item=sender as BaseItem;
if(item==null)
return;
if(item.Name=="bTabContext")
{
// Enable/Disable the document related menu items based on where user right-clicked...
TabItem tab=TabItemFromPoint(tabStrip1.PointToClient(Control.MousePosition));
// If no tab is under the mouse disable document related items...
if(tab==null)
{
item.SubItems["bClose"].Enabled=false;
item.SubItems["bSave"].Enabled=false;
}
else
{
item.SubItems["bClose"].Enabled=true;
item.SubItems["bSave"].Enabled=true;
// Make sure that tab under the mouse is active tab
tabStrip1.SelectedTab=tab;
}
}
else if(item.Name=="bDockContext")
{
Bar bar=dotNetBarManager1.Bars["barTaskList"];
// Display our context menu only if user clicks on the bar caption or tab strip control
if(!bar.GrabHandleRect.Contains(bar.PointToClient(Control.MousePosition)) && bar.DockTabControl!=null && !bar.DockTabControl.Bounds.Contains(bar.PointToClient(Control.MousePosition)))
{
e.Cancel=true;
return;
}
item.SubItems.Clear();
ButtonItem contextItem=null;
foreach(BaseItem dockItem in bar.Items)
{
contextItem=new ButtonItem(dockItem.Name,dockItem.Text);
contextItem.GlobalItem=false;
contextItem.Click+=new EventHandler(this.DockContextClick);
item.SubItems.Add(contextItem);
contextItem.Checked=dockItem.Visible;
}
contextItem=new ButtonItem("bc_tabnavigation","Tab Navigation");
contextItem.Checked=bar.TabNavigation;
contextItem.BeginGroup=true;
contextItem.Click+=new EventHandler(this.DockContextClick);
item.SubItems.Add(contextItem);
PopupItem popup=item as PopupItem;
}
}
private void DockContextClick(object sender, EventArgs e)
{
ButtonItem item=sender as ButtonItem;
if(item==null)
return;
Bar bar=dotNetBarManager1.Bars["barTaskList"];
if(item.Name=="bc_tabnavigation")
{
bar.TabNavigation=!item.Checked;
bar.DockTabControl.Refresh();
return;
}
if(bar.Items.Contains(item.Name))
bar.Items[item.Name].Visible=!item.Checked;
bar.RecalcLayout();
}
private void timerInfoBallon_Tick(object sender, System.EventArgs e)
{
timerInfoBallon.Enabled=false;
m_InfoBalloon=new Balloon();
m_InfoBalloon.CaptionImage=new Bitmap(typeof(frmMain),"Info.png");
m_InfoBalloon.CaptionText="New DotNetBar Feature Alert...";
m_InfoBalloon.Text="DotNetBar now includes Balloon control to help you convey your information effectively to the end-user.\nCheck out Find command implementation in this sample for an example of highly customized Balloon control.";
m_InfoBalloon.AutoResize();
BaseItem item=dotNetBarManager1.Bars["edit"].Items["bFind"];
m_InfoBalloon.AutoCloseTimeOut=10;
m_InfoBalloon.Owner=this;
m_InfoBalloon.Show(item,false);
}
private void frmMain_Move(object sender, System.EventArgs e)
{
this.CloseInfoBalloon();
this.CloseSearch();
}
private void CloseInfoBalloon()
{
if(m_InfoBalloon!=null)
{
m_InfoBalloon.Close();
m_InfoBalloon.Dispose();
m_InfoBalloon=null;
}
}
private void CloseSearch()
{
if(m_Search!=null)
{
m_Search.Close();
m_Search.Dispose();
m_Search=null;
}
}
public void SearchActiveDocument(string text)
{
frmDocument activedocument=this.ActiveMdiChild as frmDocument;
if(activedocument!=null)
activedocument.ExecuteCommand("bFind",text);
}
private void dotNetBarManager1_DockTabChange(object sender, DevComponents.DotNetBar.DockTabChangeEventArgs e)
{
Bar bar=sender as Bar;
if(bar==null || e.NewTab==null)
return;
bar.Text=e.NewTab.Text;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -