Você está offline; aguardando reconexão

CORRECÇÃO: O valor da propriedade ImeMode automaticamente altera para o valor desligado no .NET Framework 2.0

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 939783
Sintomas
Considere o seguinte cenário. Uma aplicação criada no Microsoft .NET Framework 2.0 contém um controlo do Microsoft Windows Forms. Definir a propriedade ImeMode do controlo para um valor específico não é o valor NoControl . O foco estiver no controlo. Em seguida, efectue uma das seguintes operações:
  • Mover o foco para outra janela. Em seguida, move o foco volta para o controlo.
  • Minimize a janela que contém o controlo. Em seguida, restaurar a janela.
Neste cenário, o valor da propriedade ImeMode muda automaticamente para o valor inactivo .
Resolução

Informações sobre a correcção

Uma correcção suportada está agora disponível da Microsoft. Contudo, destina-se a corrigir o problema descrito neste artigo. Aplique-a apenas em sistemas que tenham este problema específico. Esta correcção poderá submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, recomendamos que aguarde pelo próximo service pack do .NET Framework 2.0 que contenha esta correcção.

Para resolver este problema imediatamente, contacte o suporte técnico da Microsoft para obter a correcção. Para obter uma lista completa dos números de telefone de suporte técnico da Microsoft e informações sobre os custos de suporte, visite o seguinte Web site da Microsoft: Nota Em casos especiais, os custos normalmente inerentes às chamadas de suporte poderão ser anulados, se um técnico de suporte da Microsoft determinar que uma actualização específica resolverá o problema. Os custos normais do suporte serão aplicados a problemas adicionais e questões de suporte que não se enquadrem na atualização específica em questão.

Pré-requisitos

Tem de ter o .NET Framework 2.0 instalado para aplicar esta correcção.

Requisito de reinício

Não é necessário reiniciar o computador depois de aplicar esta correcção.

Informações sobre substituição de correcções

Esta correcção não substitui quaisquer outras correcções.

Informações do ficheiro

A versão inglesa desta correcção tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas na hora universal coordenada (UTC). Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador fuso horário no item data e hora no painel de controlo.
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempo
System.Windows.Forms.dll2.0.50727.8995,152,76830 De Junho de 200703: 28
Como contornar
Para contornar este problema, implemente o seguinte código.
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;}
Ponto Da Situação
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".
Mais Informação
Para obter mais informações sobre a terminologia de actualização de software, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
824684Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 939783 - Última Revisão: 07/23/2007 17:33:47 - Revisão: 1.2

Microsoft .NET Framework 2.0

  • kbmt kbvistasp1fix kbexpertiseadvanced kbfix kbpubtypekc kbqfe kbhotfixserver KB939783 KbMtpt
Comentários