Pregunta

¿Es posible desactivar el más caliente en una ventana de Windows Forms, y si es así, ¿cómo lo hago? Quiero tener una ventana opaca que no se puede hacer clic. Gracias de antemano, Christoph

¿Fue útil?

Solución

Si estamos hablando de un proceso diferente, que necesita para enviar y recuperar mensajes de Windows.

http://www.c-sharpcorner.com/UploadFile /thmok/SendingWindowsMessageinCSharp11262005042819AM/SendingWindowsMessageinCSharp.aspx

Tener un vistazo a este enlace:

El uso de mensajes de ventana para implementar Global System ganchos en C # http://www.codeproject.com/KB/system/WilsonSystemGlobalHooks.aspx

Los ganchos del sistema global permiten una aplicación para interceptar mensajes de Windows destinados a otras aplicaciones. Esto siempre ha sido difícil (imposible, de acuerdo con MSDN) para implementar en C #. En este artículo se intenta implementar enlaces globales del sistema mediante la creación de una envoltura DLL en C ++ que en sus mensajes a la cola de mensajes de la aplicación de enganche.

Otros consejos

¿Quieres una ventana que no se puede mover? Establecer FormBorderStyle a ninguno.

Bueno, todavía no se sabe mucho acerca de su caso de uso, pero me quedo con una punzada de todos modos, y proporcionar un ejemplo sencillo.

Asumo que desea controlar algo en el formulario principal de su forma flotante. Para ello, se necesita una referencia a su forma principal de su forma flotante. Esto se hace mediante la creación de una sobrecarga del constructor en la forma flotante que acepta una instancia del formulario principal, por ejemplo:

    public FloatingForm(MainForm mainForm)
    {
        InitializeComponent();
        _mainForm = mainForm;
    }

La forma flotante contiene un cuadro de texto llamado floatingFormTextBox, y un botón denominado Button1. La clase parcial para la forma flotante se ve así:

public partial class FloatingForm : Form
{
    MainForm _mainForm;

    public FloatingForm()
    {
        InitializeComponent();
    }

    public FloatingForm(MainForm mainForm)
    {
        InitializeComponent();
        _mainForm = mainForm;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        _mainForm.DoSomething(floatingFormTextBox.Text);
    }
}

La forma principal sólo contiene un cuadro de texto llamado mainFormTextBox. Cuando los principales cargue el formulario, se crea una instancia de forma flotante, pasando una referencia a sí mismo a la nueva sobrecarga el constructor de forma flotante. La clase parcial para el formulario principal es el siguiente:

public partial class MainForm : Form
{
    FloatingForm _floatingForm;

    public MainForm()
    {
        InitializeComponent();
    }

    public void DoSomething(string text)
    {
        mainFormTextBox.Text = text;
        this.Refresh();
    }

    private void MainForm_Load(object sender, EventArgs e)
    {
        _floatingForm = new FloatingForm(this);
        _floatingForm.Show();
    }
}

Ahora, cuando pongo un texto en el cuadro de texto del formulario flotante y haga clic en el botón, el texto aparece en el cuadro de texto del formulario principal.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top