Bagikan melalui


Mengubah tampilan perintah

Anda dapat memberikan umpan balik kepada pengguna Anda dengan mengubah tampilan perintah. Misalnya, Anda mungkin ingin perintah terlihat berbeda ketika tidak tersedia. Anda dapat membuat perintah tersedia atau tidak tersedia, menyembunyikan atau menampilkannya, atau mencentang atau menghapus centang pada menu.

Untuk mengubah tampilan perintah, lakukan salah satu tindakan berikut:

  • Tentukan bendera yang sesuai dalam definisi perintah dalam file tabel perintah.

  • OleMenuCommandService Gunakan layanan.

  • Terapkan IOleCommandTarget antarmuka dan ubah objek perintah mentah.

    Langkah-langkah berikut menunjukkan cara menemukan dan memperbarui tampilan perintah dengan menggunakan Kerangka Kerja Paket Terkelola (MPF).

Untuk mengubah tampilan perintah menu

  1. Ikuti instruksi di Mengubah teks perintah menu untuk membuat item menu bernama New Text.

  2. Dalam file ChangeMenuText.cs, tambahkan pernyataan penggunaan berikut:

    using System.Security.Permissions;
    
  3. Dalam file ChangeMenuTextPackageGuids.cs, tambahkan baris berikut:

    public const string guidChangeMenuTextPackageCmdSet= "00000000-0000-0000-0000-00000000";  // get the GUID from the .vsct file
    
  4. Dalam file ChangeMenuText.cs, ganti kode dalam metode ShowMessageBox dengan yang berikut ini:

    private void Execute(object sender, EventArgs e)
    {
        ThreadHelper.ThrowIfNotOnUIThread();
        var command = sender as OleMenuCommand;
        if (command.Text == "New Text")
            ChangeMyCommand(command.CommandID.ID, false);
    }
    
  5. Dapatkan perintah yang ingin Anda perbarui dari OleMenuCommandService objek lalu atur properti yang sesuai pada objek perintah. Misalnya, metode berikut membuat perintah yang ditentukan dari set perintah VSPackage tersedia atau tidak tersedia. Kode berikut membuat item menu bernama New Text tidak tersedia setelah diklik.

    public bool ChangeMyCommand(int cmdID, bool enableCmd)
    {
        bool cmdUpdated = false;
        var mcs = this.package.GetService<IMenuCommandService, OleMenuCommandService>();
        var newCmdID = new CommandID(new Guid(ChangeMenuTextPackageGuids.guidChangeMenuTextPackageCmdSet), cmdID);
        MenuCommand mc = mcs.FindCommand(newCmdID);
        if (mc != null)
        {
            mc.Enabled = enableCmd;
            cmdUpdated = true;
        }
        return cmdUpdated;
    }
    
  6. Bangun proyek dan mulai penelusuran kesalahan. Instans eksperimental Visual Studio akan muncul.

  7. Pada menu Alat , klik perintah Panggil ChangeMenuText . Pada titik ini nama perintah adalah Panggil ChangeMenuText, sehingga handler perintah tidak memanggil ChangeMyCommand().

  8. Pada menu Alat , Anda sekarang akan melihat Teks Baru. Klik Teks Baru. Perintah sekarang harus berwarna abu-abu.