كيفية القيام بما يلي: المحافظة على معلومات موضع أشرطة الأدوات المخصصة بين جلسات Outlook
ينطبق على |
---|
تنطبق المعلومات الموجودة في هذا الموضوع فقط على أنواع المشاريع وإصدارات Microsoft Office التالية: لمزيد من المعلومات، راجع الميزات المتوفرة بواسطة تطبيقات Office و نوع المشروع. نوع المشروع
إصدار Microsoft Office
|
يوضح هذا المثال طريق واحد محتمل لحفظ واستعادة موضع شريط الأدوات المخصص في Outlook. تقوم التعليمات البرمجية بإنشاء شريط أدوات وحفظ موضعه في ملف إعدادات مستخدم عندما ينهي المستخدم Outlook. إعادة تشغيل Outlook تقوم بإعادة إنشاء شريط الأدوات وتعيين موضعه استنادًا إلى الإعدادات المحفوظة.
مثال
Dim commandBar As Office.CommandBar
Dim WithEvents button As Office.CommandBarButton
Const TOOLBARNAME As String = "ExampleBar"
Const REGROOT As String = "Software\YourCompany\YourApp"
Dim WithEvents explorerEvents As Outlook.ExplorerEvents_Event
Dim explorer As Outlook.Explorer
Private Sub ThisAddIn_Startup(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Startup
explorer = Me.Application.ActiveExplorer()
If (explorer IsNot Nothing) Then
commandBar = Me.Application.ActiveExplorer.CommandBars.Add( _
TOOLBARNAME, _
Office.MsoBarPosition.msoBarFloating, _
False, _
True)
button = TryCast(commandBar.Controls.Add( _
Office.MsoControlType.msoControlButton, _
System.Type.Missing, System.Type.Missing, _
1, True), Office.CommandBarButton)
button.Style = _
Microsoft.Office.Core.MsoButtonStyle.msoButtonCaption
button.Caption = "Button 1"
button.Tag = "newButton"
LoadCommandBarSettings()
End If
End Sub
Private Sub SaveCommandBarSettings()
MySettings.Default("CommandBarTop") = commandBar.Top
MySettings.Default("CommandBarLeft") = commandBar.Left
MySettings.Default("CommandBarVisible") = commandBar.Visible
MySettings.Default("CommandBarPosition") = CInt(commandBar.Position)
MySettings.Default("CommandBarRowIndex") = commandBar.RowIndex
MySettings.Default.Save()
End Sub
Private Sub LoadCommandBarSettings()
Dim position As Microsoft.Office.Core.MsoBarPosition = _
CType(MySettings.Default("CommandBarPosition"), _
Microsoft.Office.Core.MsoBarPosition)
Dim rowIndex As Integer = _
CInt(MySettings.Default("CommandBarRowIndex"))
commandBar.RowIndex = rowIndex
Dim top As Integer = _
CInt(MySettings.Default("CommandBarTop"))
commandBar.Top = _
CInt(IIf(top <> 0, top, _
System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height / 2))
Dim left As Integer = _
CInt(MySettings.Default("CommandBarLeft"))
commandBar.Left = _
CInt(IIf(left <> 0, left, _
System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width / 2))
Dim visible As Boolean = _
CBool(MySettings.Default("CommandBarVisible"))
commandBar.Visible = visible
End Sub
Private Sub Click(ByVal ctrl As _
Microsoft.Office.Core.CommandBarButton, _
ByRef cancelDefault As Boolean) Handles Button.Click
System.Windows.Forms.MessageBox.Show("Hello World!")
End Sub
Sub ThisAddIn_Close() Handles explorerEvents.Close
SaveCommandBarSettings()
End Sub
Office.CommandBar commandBar;
Office.CommandBarButton button;
private const string TOOLBARNAME = "ExampleBar";
private Outlook.Explorer explorer;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
explorer = this.Application.ActiveExplorer();
((Outlook.ExplorerEvents_Event)explorer).Close +=
new Microsoft.Office.Interop.Outlook.ExplorerEvents_CloseEventHandler(ThisAddIn_Close);
if (explorer != null)
{
commandBar = this.Application.ActiveExplorer().CommandBars.Add(TOOLBARNAME,
Office.MsoBarPosition.msoBarFloating, false, true);
button = commandBar.Controls.Add(
Office.MsoControlType.msoControlButton,
System.Type.Missing, System.Type.Missing,
1, true) as Office.CommandBarButton;
button.Style =
Microsoft.Office.Core.MsoButtonStyle.msoButtonCaption;
button.Caption = "Button 1";
button.Tag = "newButton";
button.Click += new Microsoft.Office.Core.
_CommandBarButtonEvents_ClickEventHandler(button_Click);
LoadCommandBarSettings();
}
}
private void LoadCommandBarSettings()
{
Microsoft.Office.Core.MsoBarPosition position =
(Microsoft.Office.Core.MsoBarPosition)Properties.Settings
.Default["CommandBarPosition"];
commandBar.Position = position;
int rowIndex =
Convert.ToInt32(
Properties.Settings.Default["CommandBarRowIndex"]);
commandBar.RowIndex = rowIndex;
int top =
Convert.ToInt32(
Properties.Settings.Default["CommandBarTop"]);
commandBar.Top =
top != 0 ? top : System.Windows.Forms.Screen.PrimaryScreen.
Bounds.Height / 2;
int left =
Convert.ToInt32(
Properties.Settings.Default["CommandBarLeft"]);
commandBar.Left =
left != 0 ? left : System.Windows.Forms.Screen.PrimaryScreen.
Bounds.Width / 2;
bool visible = Convert.ToBoolean(
Properties.Settings.Default["CommandBarVisible"]);
commandBar.Visible = visible;
}
private void SaveCommandBarSettings()
{
Properties.Settings.Default["CommandBarTop"] = commandBar.Top;
Properties.Settings.Default["CommandBarLeft"] = commandBar.Left;
Properties.Settings.Default["CommandBarVisible"] =
commandBar.Visible;
Properties.Settings.Default["CommandBarPosition"] =
(int)commandBar.Position;
Properties.Settings.Default["CommandBarRowIndex"] =
commandBar.RowIndex;
Properties.Settings.Default.Save();
}
void button_Click(Microsoft.Office.Core.CommandBarButton Ctrl,
ref bool CancelDefault)
{
System.Windows.Forms.MessageBox.Show("Hello world!");
}
void ThisAddIn_Close()
{
SaveCommandBarSettings();
}
التحويل البرمجي للتعليمات البرمجية
يتطلب هذا المثال:
خمس إعدادات مستخدم. انقر نقراً مزدوجاً فوق أيقونة Settings.settings في خصائص المشروع (في C#) أو مجلد My Project (في Visual Basic) وقم بإضافة الخصائص التالية من نطاق المستخدم:
CommandBarTop, type int, default value = 0
CommandBarLeft, type int, default value = 0
CommandBarVisible, type boolean, default value = true
CommandBarPosition, type int, default value = 4
CommandBarRowIndex, type int, default value = 1
راجع أيضًا:
المهام
كيفية القيام بما يلي: إنشاء أشرطة أدوات Office
كيفية القيام بما يلي: إضافة أوامر إلى القوائم المختصرة في Excel