Domanda

E 'possibile disabilitare il più caldo in una finestra Windows Form, e se sì, come posso fare? Voglio avere una finestra opaca che non può essere cliccato. Grazie in anticipo, Christoph

È stato utile?

Soluzione

Se stai parlando con un processo diverso, è necessario inviare e ricevere messaggi di Windows.

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

Date un'occhiata a questo link:

Utilizzo di messaggi di finestra per implementare Global System Ganci in C # http://www.codeproject.com/KB/system/WilsonSystemGlobalHooks.aspx

ganci sistema globale consentono un'applicazione per intercettare i messaggi di Windows destinati ad altre applicazioni. Questo è sempre stato difficile (impossibile, secondo MSDN) da implementare in C #. Questo articolo tenta di implementare hook di sistema globali con la creazione di un wrapper DLL in C ++ che i messaggi messaggi alla coda di messaggi dell'applicazione di aggancio.

Altri suggerimenti

Vuoi una finestra che non può essere spostato? Impostare FormBorderStyle a nessuno.

Beh, io ancora non so molto su vostro caso d'uso, ma mi prendo una pugnalata in ogni caso, e di fornire un semplice esempio.

Presumo che si desidera controllare qualcosa sulla forma principale dal modulo galleggiante. Per fare questo, è necessario un riferimento al modulo principale dal modulo galleggiante. A tale scopo, la creazione di un sovraccarico di costruttore nel modulo galleggiante che accetta un'istanza del modulo principale, in questo modo:

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

Il modulo galleggiante contiene una casella di testo di nome floatingFormTextBox, e un pulsante denominato Button1. La classe parziale per il modulo galleggiante simile a questa:

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 principale forma solo contiene una casella di testo di nome mainFormTextBox. Quando i carichi principali del modulo, si crea un'istanza del modulo galleggiante, passando un riferimento a se stesso per nuovo sovraccarico costruttore della forma galleggiante. La classe parziale per la forma principale appare così:

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();
    }
}

Ora, quando ho messo un po 'di testo nella casella di testo del modulo galleggiante e cliccare sul pulsante, il testo si presenta nella casella di testo del form principale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top