WPF ComboBox ikke holde åpent når det brukes i en oppgave Pane

stemmer
2

Jeg har en merkelig bug med WPF Interop og et Excel Addin. Jeg bruker Net 3.5 SP1.

Jeg bruker Add-in Express for å lage en tilpasset Task Pane for Excel 2003. Innenfor denne taskpane jeg bruker ElementHost å være vert for en WPF UserControl. Den UserControl inneholder bare et rutenett med en tekstboks og ComboBox. Mitt problem er at mens alt viser riktig, vil ComboBox ikke bli droppet ned med mindre jeg holder musen ned over ned-pilen.

Jeg tror ikke dette nødvendigvis er knyttet til Add-in Express fordi jeg har hatt et lignende problem da jeg prøvde å vise et WPF vindu modelessly i Excel.

Et annet problem er at ComboBox synes motvillige til å gi opp fokus. Hvis jeg klikker på den, går tekstområdet grå for å indikere at den har fokus, men jeg kan ikke flytte fokus noe annet sted i vinduet. Den eneste måten å fravriste fokus vekk er å flytte musehjulet.

Noen andre hadde et lignende problem, og klarte å fikse det?

Publisert på 08/10/2008 klokken 12:23
kilden bruker
På andre språk...                            


2 svar

stemmer
4

Add-in Express så inn i dette for meg, og det viser seg å ha noe å gjøre med Window stilen i Task Pane som blir lagt til Excel. Hvis du slår av WS_CHILD flagg i Windows CreateParams deretter kombinasjonsbokser og annet popups fungerer som forventet.

De ga meg denne kodebit å legge til min ADXExcelTaskPane:

private const uint WS_CHILD = 0x40000000;
private const uint WS_CLIPCHILDREN = 0x02000000;
private const uint WS_CLIPSIBLINGS = 0x04000000;

private CreateParams _CreateParams = new CreateParams();
protected override CreateParams CreateParams
{
    get
    {
        _CreateParams = base.CreateParams;
        if (!DesignMode)
            _CreateParams.Style = (int)(WS_CLIPCHILDREN | WS_CLIPSIBLINGS); //| WS_CHILD

        return _CreateParams;
    }
}
Svarte 30/03/2009 kl. 12:44
kilden bruker

stemmer
0

Jeg hadde det samme problemet. Jeg har en WPF brukerkontroll vert i en WinForm brukerkontroll og hele er et Excel tilleggsarbeidsbok. Jeg jobber med Visual Studio 2010 og Excel 2007 og Excel 2010.

Mitt problem var at når jeg klikket en gang i Excel-ark, tillegget aldri får fokus igjen. Jeg fant en løsning.

  1. I konstruktøren av min WinForm brukerkontroll, registrerer jeg på hendelsen MouseEnter min WPF brukerkontroll.
  2. I MouseEnter hendelseshåndterer, jeg gir fokus til meg selv (this.Focus ())

    public WpfContainerUserControl()
    {
        InitializeComponent();
        GpecsBrowserTabUserControl gpecBrowser = elementHost1.Child as GpecsBrowserTabUserControl;
        gpecBrowser.MouseEnter += new System.Windows.Input.MouseEventHandler(gpecBrowser_MouseEnter);
    }
    
    void gpecBrowser_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e)
    {
        this.Focus();
    } 
    
Svarte 04/03/2011 kl. 07:31
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more