Immagine in CommandBarButton

mercoledì 15 febbraio 2006 - 12.41

Juwan Profilo | Junior Member

Salve ragazzi, qualcuno sa per caso come inserire un'immagine,
all'interno di un pulsante CommandBarButton?
Ho visto che c'è la proprietà Picture, ma vuole l'immagine come una
stdole.IPictureDisp, e non so come fare, per associare a questo tipo
un'immagine, qualcuno sa aiutarmi?

Brainkiller Profilo | Guru

>Salve ragazzi, qualcuno sa per caso come inserire un'immagine,
>all'interno di un pulsante CommandBarButton?
>Ho visto che c'è la proprietà Picture, ma vuole l'immagine come
>una
>stdole.IPictureDisp, e non so come fare, per associare a questo
> tipo un'immagine, qualcuno sa aiutarmi?

Ciao Juwan,
è abbastanza difficile darti una mano su Visual Studio for Office, perchè io personalmente non lo uso e non conosco nessuno nel settore IT che lo usi. Quindi non saprei neanche consigliarti su dove rivolgerti se non alla documentazione del prodotto.

Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

Juwan Profilo | Junior Member

Ho cercato in rete ed ho trovato, un pò di codice che dovrebbe risolvere il mio problema, ma a quanto pare c'è qualcosa che non funziona, visto che l'immagine non viene caricata, all'interno del CommandBarButton, anche se stranamente non viene segnalato nessun errore, questo è comunque il codice.
private void ThisDocument_Startup(object sender, System.EventArgs e)
{

Office.CommandBar newCommandBar = null;
Office.CommandBarButton cmdButton = null;
newCommandBar = this.CommandBars.Add("Command Bar Name", Microsoft.Office.Core.MsoBarPosition.msoBarTop, false, true);

cmdButton = (Office.CommandBarButton)newCommandBar.Controls.Add(Microsoft.Office.Core.MsoControlType.msoControlButton, System.Type.Missing, System.Type.Missing, System.Type.Missing, true);

cmdButton.Caption = "Show ActionPane";
cmdButton.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(cmdButton_Click);
cmdButton.DescriptionText = "Show ActionPane";
cmdButton.Style = MsoButtonStyle.msoButtonCaption;
cmdButton.Picture = getImage();
cmdButton.Tag = "ControlTag";

cmdButton.Visible = true;
newCommandBar.Visible = true;
}

private stdole.IPictureDisp getImage()
{
stdole.IPictureDisp tempImage = null;
try
{
Image img = Image.FromFile
(System.Environment.GetFolderPath
(System.Environment.SpecialFolder.Personal)
+ @"\struttura.gif");

// System.Drawing.Icon newIcon = Properties.Resources.Icon1;

ImageList newImageList = new ImageList();
newImageList.Images.Add(img);
tempImage = ConvertImage.Convert(newImageList.Images[0]);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message+ex.StackTrace);
}
return tempImage;
}

sealed public class ConvertImage : System.Windows.Forms.AxHost
{
private ConvertImage()
: base(null)
{
}
public static stdole.IPictureDisp Convert
(System.Drawing.Image image)
{
return (stdole.IPictureDisp)System.
Windows.Forms.AxHost
.GetIPictureDispFromPicture(image);
}
}



Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5