オプション設定の制御
[オプション] ダイアログ ボックス内のページ (これ以降、オプション ページと呼びます) の設定の多くをアクティブまたは非アクティブにするコードを記述できます。Visual Studio オートメーション モデルの DTE オブジェクトの Properties プロパティ、Value プロパティ、および Item メソッドを使用するだけで、この操作を行うことができます。
[!メモ]
多くのオプション ページにある多くの項目にはプログラムでアクセスできますが、特定のページにはアクセスできない項目が含まれている場合があります。また、オプション ページ自体にアクセスできないこともあります。オートメーション モデルを使用して設定を変更できない場合は、Visual Studio SDK を使用すると変更できることがあります。詳細については、このドキュメントで後述する「既存のオプション ページへの設定の追加」を参照してください。プログラムでアクセスできるオプションおよびその正確な名前の一覧については、「オプション ページにあるプロパティ項目名の確認」の「プロパティ項目名」を参照してください。
統合開発環境 (IDE: Integrated Development Environment) で [オプション] ダイアログ ボックスを開くには、[ツール] メニューの [オプション] をクリックします。
オプションの設定の表示
Properties コレクションおよび Property オブジェクトを使用して、オプション ページの設定にアクセスします。次の Visual Studio の例は [ドキュメント] のページの項目の名前、現在の値と型を表示します。
Sub PropertiesExample()
' Create and initialize a variable to represent the Documents
' Options page.
Dim envGenTab As EnvDTE.Properties = _
DTE.Properties("Environment", "Documents")
Dim prop As EnvDTE.Property
Dim msg As String
' Loop through each item in the Documents Options box.
For Each prop In envGenTab
Try
msg += ("PROP NAME: " & prop.Name & _
" VALUE: " & prop.Value) & _
" TYPE: " & prop.Value.GetType.ToString()) & vbCr
Catch
End Try
Next
MsgBox(msg)
End Sub
次の例では [タスク一覧] の [オプション] のページで使用できるプロパティを表示します。([環境] のノードの下)。また、コメント [トークン リスト] で使用できる値の一覧を示します。
Sub DisplayProperties()
' Variables to represent the properties collection
' and each property in the Options dialog box.
Dim prop As EnvDTE.Property
Dim props As EnvDTE.Properties
Dim propVals As Object()
Dim propVal, msg As String
' Represents the Task List Node under the
' Enviroment node.
props = DTE.Properties("Environment", "TaskList")
' Represents the items in the comment Token list
' and their priorities (1-3/low-high).
prop = props.Item("CommentTokens")
propVals = prop.Value
Try
' List each property name for the Options page
' and all of its possible values.
For Each prop In props
msg += "PROP NAME: " & prop.Name & vbCr
For Each propVal In propVals
msg += " Value: " & propVal & vbCr
Next
Next
MsgBox(msg)
Catch ex As System.Exception
MsgBox("ERROR: " & ex.Message)
End Try
End Sub
次の例では、[テキスト エディター] ノードの下の [C#] の [書式設定] にあるオプション ページのコードから操作できる設定の一覧を表示します。
Sub PropertiesExample()
' Create and initialize a variable to represent the C#
' Formatting text editor options page.
Dim txtEdCSFormat As EnvDTE.Properties = _
DTE.Properties("TextEditor", "CSharp - Formatting")
Dim prop As EnvDTE.Property
Dim msg As String
' Loop through each item in the C# Formatting Options page.
For Each prop In txtEdCSFormat
msg += ("PROP NAME: " & prop.Name & " VALUE: " & _
prop.Value) & vbCr
Next
MsgBox(msg)
End Sub
オプションの設定の変更
オプション ページの設定の値を表示できるだけでなく、その値を変更することもできます。次の Visual Studio の例ではこれを行う方法を示します。
[!メモ]
既存のオプション ページ上のコントロールの値は変更できますが、そのコントロールまたは設定は追加、削除、または変更できません。独自の設定を指定するには、カスタムのオプション ページを作成する必要があります。詳細については、「方法: カスタム オプション ページを作成する」を参照してください。
最初の例 (ToolOpt1) では、ReuseSavedActiveDocWindow のブール値を切り替えます。これは、[環境] ノードの [ドキュメント] ページにある [保存済みの現在のドキュメント ウィンドウを再利用] オプションの名前です。
Sub ToolOpt1()
Dim props As EnvDTE.Properties = DTE.Properties("Environment", _
"Documents")
Dim prop As EnvDTE.Property
prop = props.Item("ReuseSavedActiveDocWindow")
' If value is TRUE, change it to FALSE, or vice-versa.
MsgBox("PROP NAME: " & prop.Name & " VALUE: " & prop.Value)
prop.Value = Not (prop.Value)
MsgBox("PROP NAME: " & prop.Name & " VALUE: " & prop.Value)
' Change it to the original value.
prop.Value = Not (prop.Value)
End Sub
次の例では [テキスト エディター] のノードの下に [基本] のページの [タブ] のセクションの [タブのサイズ] の値を変更してリセットします。
Sub ToolOpt2()
Dim props As EnvDTE.Properties = DTE.Properties("TextEditor", _
"Basic")
Dim prop As EnvDTE.Property
Dim tmp As String
prop = props.Item("TabSize")
' Set a new value for Tab Size.
MsgBox("PROP NAME: " & prop.Name & " VALUE: " & prop.Value)
tmp = prop.Value
prop.Value = 10
MsgBox("PROP NAME: " & prop.Name & " VALUE: " & prop.Value)
' Change it back to the original value.
prop.Value = tmp
MsgBox("PROP NAME: " & prop.Name & " VALUE: " & prop.Value)
End Sub
この例では [環境] のノードの下に [フォントおよび色] のページの設定を変更します。
Sub ToolOpt3()
' Changes the background color of text in the Fonts and Colors
' page of the Options dialog box on the Tools menu.
Dim props As EnvDTE.Properties
Dim prop As EnvDTE.Property
Dim fontColorItems As EnvDTE.FontsAndColorsItems
props = DTE.Properties("FontsAndColors", "TextEditor")
prop = props.Item("FontsAndColorsItems")
fontColorItems = prop.Object
Try
MsgBox("NAME: " & prop.Name & vbCr & "BACKGROUND VALUE: " & _
CStr(fontColorItems.Item("Plain Text").Background.ToString))
' Turn the text background from its current color to red.
fontColorItems.Item("Plain Text").Background = 255
MsgBox("NAME: " & prop.Name & vbCr & "BACKGROUND VALUE: " & _
Hex(fontColorItems.Item("Plain Text").Background.ToString))
Catch ex As System.Exception
MsgBox("ERROR: " & ex.Message)
End Try
End Sub
この例では [テキスト エディター] のノードの複数の言語で行番号表示を有効にします。
Sub TurnOnLineNumbers()
DTE.Properties("TextEditor", "Basic").Item("ShowLineNumbers") _
.Value = True
DTE.Properties("TextEditor", "PlainText").Item("ShowLineNumbers") _
.Value = True
DTE.Properties("TextEditor", "CSharp").Item("ShowLineNumbers") _
.Value = True
DTE.Properties("TextEditor", "HTML/XML").Item("ShowLineNumbers") _
.Value = True
DTE.Properties("TextEditor", "C/C++").Item("ShowLineNumbers") _
.Value = True
DTE.Properties("TextEditor", "Visual JSharp") _
.Item("ShowLineNumbers").Value = True
End Sub
既存のオプション ページへの設定の追加
Visual Studio オートメーション モデルを使用して、既存のオプション ページに設定を追加したり既存の設定を変更したりすることはできません。このような変更を行うには、Visual Studio SDK を使用する必要があります。詳細については、Development Tools Ecosystem Partner Portal (開発ツール エコシステム パートナー ポータル) Web サイトを参照してください。