Sélection de WindowConfiguration, exemple
Les macros complémentaires Visual Studio sont déconseillées dans Visual Studio 2013. Vous devriez mettre vos macros complémentaires à niveau vers des extensions VSPackage. Pour plus d'informations sur les mises à jour, consultez FAQ : conversion de compléments en extensions VSPackage.
Cet exemple montre comment créer, référencer et supprimer plusieurs configurations de fenêtres, et comment les sélectionner et les appliquer. Cette procédure prend un instantané de votre configuration de fenêtres en cours. Après avoir exécuté WinConfigExample2a, déplacez quelques fenêtres de l'environnement Visual Studio, puis exécutez la deuxième procédure, WinConfigExample2b. Cette procédure prend un nouvel instantané de votre configuration de fenêtres en cours et le compare au premier instantané. Elle supprime ensuite les deux configurations de fenêtres et rétablit votre environnement initial.
Pour utiliser les exemples suivants, copiez-les dans un nouveau projet de complément, puis exécutez la première procédure, WinConfigExample2a, dans la méthode OnConnection du complément. Pour plus d'informations sur l'exécution des exemples de code en tant que partie d'un complément, consultez Comment : compiler et exécuter les exemples de code du modèle objet Automation.
Exemple
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);
}