Oprava: Hodnota vlastnost ImeMode automaticky změní na jinou hodnotu v rozhraní .NET Framework 2.0

Překlady článku Překlady článku
ID článku: 939783 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Předpokládejme následující situaci. Aplikace, která je integrována v rozhraní Microsoft .NET Framework 2.0 obsahuje ovládací prvek Microsoft Windows Forms. Vlastnost ImeMode ovládacího prvku nastavit na určitou hodnotu, která není hodnota NoControl. Je fokus na ovládací prvek. Potom je provést jednu z následujících operací:
  • Přesunout fokus do jiného okna. Poté přesunete fokus zpět na ovládací prvek.
  • Minimalizace okna, která obsahuje ovládací prvek. Potom obnovte okno.
V tomto scénáři hodnota vlastnost ImeMode automaticky změní na hodnotu Vypnuto.

Řešení

Informace o opravě hotfix

Společnost Microsoft nyní nabízí podporovanou opravu hotfix. Ta je však určena pouze k odstranění problému popsaného v tomto článku. Tuto opravu použijte pouze u systémů, ve kterých dochází k popsanému problému. Tato oprava hotfix může být dále testována. Proto pokud není použití tento problém, doporučujeme počkat na další aktualizaci service pack pro rozhraní .NET Framework 2.0, který obsahuje tuto opravu hotfix.

Potřebujete-li odstranit tento problém okamžitě, obraťte se na technickou podporu společnosti Microsoft, kde můžete tuto opravu hotfix získat. Úplný seznam telefonních čísel služeb podpory zákazníků společnosti a informace o cenách podpory naleznete na následujícím webu:
http://support.microsoft.com/contactus/?ws=support
Poznámka: Poplatky, které je třeba obvykle zaplatit za telefonní hovory, mohou být stornovány, jestliže pracovník technické podpory společnosti Microsoft zjistí, že oznámený problém lze vyřešit konkrétní aktualizací. Další dotazy a žádosti o odbornou pomoc, které se netýkají této zvláštní opravy, podléhají běžným sazbám za poskytnutí odborné pomoci.

Požadavky

Musíte mít nainstalován tuto opravu hotfix rozhraní .NET Framework 2.0.

Požadavek na restartování

Po instalaci této opravy hotfix není třeba počítač restartovat.

Informace o nahrazení opravy hotfix

Tato oprava Hotfix nenahrazuje žádné další opravy Hotfix.

INFORMACE O SOUBORECH

Anglická verze této opravy hotfix má následující (nebo pozdější) atributy souborů. Data a časy jednotlivých souborů jsou uvedeny ve formátu UTC (Coordinated Universal Time). Pokud zobrazíte informace o souboru, bude převedena na místní čas. Rozdíl mezi místním ČASEM a najít, použijte kartu časové pásmo v položce datum a čas v ovládacím.
Zmenšit tuto tabulkuRozšířit tuto tabulku
Název souboruVerze souboruVelikost souboruDatumČas
System.windows.forms.dll2.0.50727.8995,152,76830-VI-200703: 28

Jak potíže obejít

Tento problém vyřešit implementovat následující kód.
public partial class Form1 : Form
{
    private Control focusedControl;

    private ImeMode propIme;

    public Form1()
    {
        InitializeComponent();

        this.Activated += new EventHandler(Form1_Activated);
        this.Deactivate += new EventHandler(Form1_Deactivate);
    }

    private void Form1_Activated(object sender, EventArgs e)
    {
        if (focusedControl != null)
        {
            focusedControl.ImeMode = propIme;
        }
    }

    private void Form1_Deactivate(object sender, EventArgs e)
    {
        Save_ImeMode();
    }

    private void Save_ImeMode()
    {
        Control tmpFocusedControl = null;
        foreach (Control c in Controls)
        {
            if (c.Focused)
            {
                if (c is TextBox)
                {
                    tmpFocusedControl = c as TextBox;
                    break;
                }
            }
            if (c.HasChildren)
            {
                foreach (Control c2 in c.Controls)
                {
                    if (c2.Focused && c2 is TextBox)
                    {
                        tmpFocusedControl = c2 as TextBox;
                        break;
                    }
                }
            }
        }
        if (tmpFocusedControl != null)
        {
            focusedControl = tmpFocusedControl;
            propIme = focusedControl.ImeMode;
        }
    }

    protected override void WndProc(ref Message m)
    {
        if (m.Msg == WM_SYSCOMMAND)
        {
            if (m.WParam.ToInt32() == SC_MINIMIZE)
            {
                Save_ImeMode();
            }
        }
        base.WndProc(ref m);
    }

    const int SC_MINIMIZE = 0xF020;
    const int WM_SYSCOMMAND = 0x0112;
}

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Další informace

Další informace o terminologii používané v aktualizacích softwaru naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
824684Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft

Vlastnosti

ID článku: 939783 - Poslední aktualizace: 23. července 2007 - Revize: 1.2
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft .NET Framework 2.0
Klíčová slova: 
kbmt kbvistasp1fix kbexpertiseadvanced kbfix kbpubtypekc kbqfe kbhotfixserver KB939783 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:939783

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com