Exemplo de seleção de WindowConfiguration
Este exemplo demonstra como criar, fazer referência e excluir várias configurações de janela, bem como sobre como selecionar e aplicá-las. Ele leva um instantâneo da sua configuração atual da janela. Depois de executar o WinConfigExample2a, mover algumas janelas da Visual Studio ambiente ao redor e execute o segundo procedimento, WinConfigExample2b. Isso leva a outro snapshot da configuração da janela atual e a compara com o primeiro snapshot. Em seguida, ele exclui ambas as configurações de janela, redefinindo seu ambiente, como era antes.
Para usar os exemplos a seguir, copiá-los para um novo projeto de suplemento e execute o primeiro procedimento, WinConfigExample2a, add-in do OnConnection método. Para obter mais informações sobre como executar os exemplos de código como parte de um suplemento, consulte How to: Compilar e executar os exemplos de código de modelo de objeto de automação.
Exemplo
Sub WinConfigExample2a(ByVal dte As DTE)
Dim colWinConfig As WindowConfigurations = dte.WindowConfigurations
Dim objWinConfig As WindowConfiguration
MsgBox("Taking snapshot of current window configuration... ")
objWinConfig = colWinConfig.Add("Layout_1")
MsgBox("Created new configuration: " & _
colWinConfig.Item(colWinConfig.Count).Name)
FillMsg(colWinConfig)
End Sub
Sub WinConfigExample2b(ByVal dte As DTE)
' Before running this, alter the current window configuration.
Dim colWinConfig As WindowConfigurations = dte.WindowConfigurations
Dim objWinConfig As WindowConfiguration
Dim lCtr As Integer
' Create another new window configuration.
MsgBox("Now we'll save the new configuration...")
objWinConfig = colWinConfig.Add("Layout_2")
MsgBox("Created new configuration: " & _
colWinConfig.Item(colWinConfig.Count).Name)
FillMsg(colWinConfig)
MsgBox("Now we'll load and apply the Layout_1 configuration." & _
vbCr & "You should see the windows change back.")
colWinConfig.Item(colWinConfig.Count - 1).Apply()
MsgBox("Now we'll change back to Layout_2...")
colWinConfig.Item(colWinConfig.Count).Apply()
' Delete both new window configurations.
colWinConfig.Item(3).Apply()
For lCtr = (colWinConfig.Count - 1) To (colWinConfig.Count)
objWinConfig = colWinConfig.Item(colWinConfig.Count)
objWinConfig.Delete()
FillMsg(colWinConfig)
Next lCtr
End Sub
Sub FillMsg(ByVal colWinConfig As Object)
' Lists all currently available named window configurations.
Dim lCtr As Integer
Dim strMsg As String
For lCtr = 1 To colWinConfig.count
strMsg = strMsg & "Configuration name " & lCtr & ": " & _
colWinConfig.Item(lCtr).Name & vbCr
Next lCtr
strMsg = "Current Configurations: " & vbCr & strMsg
MsgBox(strMsg)
End Sub
void WinConfigExample2a(_DTE dte)
{
WindowConfigurations colWinConfig = dte.WindowConfigurations;
WindowConfiguration objWinConfig;
MessageBox.Show("Taking snapshot of current window
configuration... ");
objWinConfig = colWinConfig.Add("Layout_1");
MessageBox.Show("Created new configuration: " +
colWinConfig.Item(colWinConfig.Count).Name);
FillMsg(colWinConfig);
}
void WinConfigExample2b(_DTE dte)
{
// Before running this, alter the current window configuration.
WindowConfigurations colWinConfig = dte.WindowConfigurations;
WindowConfiguration objWinConfig;
int lCtr;
// Create another new window configuration.
MessageBox.Show("Now we'll save the new configuration...");
objWinConfig = colWinConfig.Add("Layout_2");
MessageBox.Show("Created new configuration: " +
colWinConfig.Item(colWinConfig.Count).Name);
FillMsg(colWinConfig);
MessageBox.Show("Now we'll load and apply the Layout_1
configuration. \n You should see the windows change back.");
colWinConfig.Item(colWinConfig.Count - 1).Apply(true);
MessageBox.Show("Now we'll change back to Layout_2...");
colWinConfig.Item(colWinConfig.Count).Apply(true);
// Delete both new window configurations.
colWinConfig.Item(3).Apply(true);
for (lCtr = (colWinConfig.Count - 1); lCtr < (colWinConfig.Count
+1); lCtr++)
{
objWinConfig = colWinConfig.Item(colWinConfig.Count);
objWinConfig.Delete();
FillMsg(colWinConfig);
}
}
void FillMsg(WindowConfigurations colWinConfig )
{
// Lists all currently available named window configurations.
int lCtr;
string strMsg = null;
for (lCtr = 1; lCtr < colWinConfig.Count + 1; lCtr ++)
{
strMsg = strMsg + "Configuration name " + lCtr + ": " + _
colWinConfig.Item(lCtr).Name + "\n";
}
strMsg = "Current Configurations: \n" + strMsg;
MessageBox.Show(strMsg);
}