IHelpService 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供在設計階段顯示說明主題以及加入和移除 Help 關鍵字的方法。
public interface class IHelpService
public interface IHelpService
type IHelpService = interface
Public Interface IHelpService
範例
下列範例示範設計工具,其使用 IHelpService 來新增和移除包含控件的說明內容屬性。 若要使用此範例,請將它編譯至類別庫,並將控件的實例新增至 Form。 在設計檢視中,選取元件,然後按 F1 會嘗試根據目前的 [說明內容] 關鍵詞或關鍵詞來查閱相關的 [說明] 主題。 以滑鼠右鍵單擊元件,快捷方式功能表會顯示命令,包括名為 和Remove IHelpService Help Keyword
的兩個Add IHelpService Help Keyword
自定義DesignerVerb命令。 這些命令可用來新增或移除 「IHelpService」 值的說明內容關鍵詞,這會在按下 F1 時嘗試引發 IHelpService 主題。
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>
#using <System.Design.dll>
#using <System.dll>
using namespace System;
using namespace System::ComponentModel;
using namespace System::ComponentModel::Design;
using namespace System::Drawing;
using namespace System::IO;
using namespace System::Windows::Forms;
using namespace System::Windows::Forms::Design;
public ref class HelpDesigner: public System::Windows::Forms::Design::ControlDesigner
{
public:
HelpDesigner(){}
property System::ComponentModel::Design::DesignerVerbCollection^ Verbs
{
virtual System::ComponentModel::Design::DesignerVerbCollection^ get() override
{
array<DesignerVerb^>^temp0 = {gcnew DesignerVerb( "Add IHelpService Help Keyword",gcnew EventHandler( this, &HelpDesigner::addKeyword ) ),gcnew DesignerVerb( "Remove IHelpService Help Keyword",gcnew EventHandler( this, &HelpDesigner::removeKeyword ) )};
return gcnew DesignerVerbCollection( temp0 );
}
}
private:
void addKeyword( Object^ /*sender*/, EventArgs^ /*e*/ )
{
IHelpService^ hs = dynamic_cast<IHelpService^>(this->Control->Site->GetService( IHelpService::typeid ));
hs->AddContextAttribute( "keyword", "IHelpService", HelpKeywordType::F1Keyword );
}
void removeKeyword( Object^ /*sender*/, EventArgs^ /*e*/ )
{
IHelpService^ hs = dynamic_cast<IHelpService^>(this->Control->Site->GetService( IHelpService::typeid ));
hs->RemoveContextAttribute( "keyword", "IHelpService" );
}
};
[Designer(HelpDesigner::typeid)]
public ref class HelpTestControl: public System::Windows::Forms::UserControl
{
public:
HelpTestControl()
{
this->Size = System::Drawing::Size( 320, 100 );
this->BackColor = Color::White;
}
protected:
virtual void OnPaint( System::Windows::Forms::PaintEventArgs^ e ) override
{
Brush^ brush = gcnew SolidBrush( Color::Blue );
e->Graphics->DrawString( "IHelpService Example Designer Control", gcnew System::Drawing::Font( FontFamily::GenericMonospace,10 ), brush, 5, 5 );
e->Graphics->DrawString( "Right-click this component for", gcnew System::Drawing::Font( FontFamily::GenericMonospace,8 ), brush, 5, 25 );
e->Graphics->DrawString( "add/remove Help context keyword commands.", gcnew System::Drawing::Font( FontFamily::GenericMonospace,8 ), brush, 5, 35 );
e->Graphics->DrawString( "Press F1 while this component is", gcnew System::Drawing::Font( FontFamily::GenericMonospace,8 ), brush, 5, 55 );
e->Graphics->DrawString( "selected to raise Help topics for", gcnew System::Drawing::Font( FontFamily::GenericMonospace,8 ), brush, 5, 65 );
e->Graphics->DrawString( "the current keyword or keywords", gcnew System::Drawing::Font( FontFamily::GenericMonospace,8 ), brush, 5, 75 );
}
};
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using System.Windows.Forms.Design;
namespace IHelpServiceSample
{
public class HelpDesigner : System.Windows.Forms.Design.ControlDesigner
{
public HelpDesigner()
{
}
public override System.ComponentModel.Design.DesignerVerbCollection Verbs
{
get
{
return new DesignerVerbCollection( new DesignerVerb[] {
new DesignerVerb("Add IHelpService Help Keyword", new EventHandler(this.addKeyword)),
new DesignerVerb("Remove IHelpService Help Keyword", new EventHandler(this.removeKeyword))
} );
}
}
private void addKeyword(object sender, EventArgs e)
{
IHelpService hs = (IHelpService) this.Control.Site.GetService(typeof(IHelpService));
hs.AddContextAttribute("keyword", "IHelpService", HelpKeywordType.F1Keyword);
}
private void removeKeyword(object sender, EventArgs e)
{
IHelpService hs = (IHelpService) this.Control.Site.GetService(typeof(IHelpService));
hs.RemoveContextAttribute("keyword", "IHelpService");
}
}
[Designer(typeof(HelpDesigner))]
public class HelpTestControl : System.Windows.Forms.UserControl
{
public HelpTestControl()
{
this.Size = new Size(320, 100);
this.BackColor = Color.White;
}
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
Brush brush = new SolidBrush(Color.Blue);
e.Graphics.DrawString("IHelpService Example Designer Control", new Font( FontFamily.GenericMonospace, 10 ), brush, 5, 5);
e.Graphics.DrawString("Right-click this component for", new Font( FontFamily.GenericMonospace, 8 ), brush, 5, 25);
e.Graphics.DrawString("add/remove Help context keyword commands.", new Font( FontFamily.GenericMonospace, 8 ), brush, 5, 35);
e.Graphics.DrawString("Press F1 while this component is", new Font( FontFamily.GenericMonospace, 8 ), brush, 5, 55);
e.Graphics.DrawString("selected to raise Help topics for", new Font( FontFamily.GenericMonospace, 8 ), brush, 5, 65);
e.Graphics.DrawString("the current keyword or keywords", new Font( FontFamily.GenericMonospace, 8 ), brush, 5, 75);
}
}
}
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Drawing
Imports System.IO
Imports System.Windows.Forms
Imports System.Windows.Forms.Design
Namespace IHelpServiceSample
Public Class HelpDesigner
Inherits System.Windows.Forms.Design.ControlDesigner
Public Sub New()
End Sub
Public Overrides ReadOnly Property Verbs() As System.ComponentModel.Design.DesignerVerbCollection
Get
Return New DesignerVerbCollection(New DesignerVerb() {New DesignerVerb("Add IHelpService Help Keyword", AddressOf Me.addKeyword), New DesignerVerb("Remove IHelpService Help Keyword", AddressOf Me.removeKeyword)})
End Get
End Property
Private Sub addKeyword(ByVal sender As Object, ByVal e As EventArgs)
Dim hs As IHelpService = CType(Me.Control.Site.GetService(GetType(IHelpService)), IHelpService)
hs.AddContextAttribute("keyword", "IHelpService", HelpKeywordType.F1Keyword)
End Sub
Private Sub removeKeyword(ByVal sender As Object, ByVal e As EventArgs)
Dim hs As IHelpService = CType(Me.Control.Site.GetService(GetType(IHelpService)), IHelpService)
hs.RemoveContextAttribute("keyword", "IHelpService")
End Sub
End Class
<Designer(GetType(HelpDesigner))> _
Public Class HelpTestControl
Inherits System.Windows.Forms.UserControl
Public Sub New()
Me.Size = New Size(320, 100)
Me.BackColor = Color.White
End Sub
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
Dim brush As New SolidBrush(Color.Blue)
e.Graphics.DrawString("IHelpService Example Designer Control", New Font(FontFamily.GenericMonospace, 10), brush, 5, 5)
e.Graphics.DrawString("Right-click this component for", New Font(FontFamily.GenericMonospace, 8), brush, 5, 25)
e.Graphics.DrawString("add/remove Help context keyword commands.", New Font(FontFamily.GenericMonospace, 8), brush, 5, 35)
e.Graphics.DrawString("Press F1 while this component is", New Font(FontFamily.GenericMonospace, 8), brush, 5, 55)
e.Graphics.DrawString("selected to raise Help topics for", New Font(FontFamily.GenericMonospace, 8), brush, 5, 65)
e.Graphics.DrawString("the current keyword or keywords", New Font(FontFamily.GenericMonospace, 8), brush, 5, 75)
End Sub
End Class
End Namespace 'IHelpServiceSample
備註
設計時間環境提供說明系統,可嘗試尋找當使用者按下 F1 時要顯示的相關幫助主題。 說明系統會維護一組目前的內容關鍵詞,以在要求說明時用來識別相關主題。 根據預設,關鍵詞會與設計時間環境中的選取類別對象和對象的屬性相關聯。 元件或屬性的預設關鍵詞是其完整類別或屬性名稱。 特定關鍵詞也會與特定模式相關聯,例如選取多個物件時。 如果自定義的 Help 集合是透過設定外部說明提供者的設計時間環境來整合,則檔提供者可以將特定元件類別或屬性的主題與專案的完整類型或成員名稱所組成的關鍵詞產生關聯。
IHelpService可用來使用 方法,以ShowHelpFromKeyword指定的關鍵詞叫用說明服務,或使用 方法從指定的URL叫用ShowHelpFromUrl幫助主題。
IHelpService也可以在設計時間用來新增或移除 Help 關鍵詞。 在設計時間選取元件或屬性會設定預設內容關鍵詞,其中包含選取專案的完整類型或成員名稱,並移除任何先前選取且不再選取的元件或屬性的關鍵詞。
因為說明系統不會自動移除自定義說明關鍵詞,所以當自定義關鍵詞不再套用時,您必須明確移除自定義關鍵詞。 您可以監視 介面所 ISelectionService 定義的事件,以判斷元件選取專案何時變更。 根據這些事件,您可以在選取元件時為元件新增說明內容屬性,然後在選取範圍不再包含元件時移除 [說明內容] 屬性。
方法
AddContextAttribute(String, String, HelpKeywordType) |
加入內容屬性至文件。 |
ClearContextAttributes() |
從文件中移除所有現有的內容屬性。 |
CreateLocalContext(HelpContextType) |
建立本機的 IHelpService 以管理子內容。 |
RemoveContextAttribute(String, String) |
移除先前加入的內容屬性。 |
RemoveLocalContext(IHelpService) |
移除以 CreateLocalContext(HelpContextType) 建立的內容。 |
ShowHelpFromKeyword(String) |
顯示對應於指定關鍵字的說明主題。 |
ShowHelpFromUrl(String) |
顯示對應於指定 URL 的說明主題。 |