Hier, j'ai trouvé quelque chose de très étrange (je pense). Il semble que Form.TransparencyKey
donne des résultats différents en fonction de la couleur utilisée comme BackgroundColor
et TransparencyKey
. Si vous voulez reproduire ce, faire ce qui suit:C# Form.TransparencyKey travail différent pour différentes couleurs, pourquoi?
- Créer nouvelle application Windows Forms
- déposer une
Panel
sur le formulaire - Give it "vert" comme
BackgroundColor
et mettreTransparencyKey
de Form1 également Green - Exécutez le programme et mettez Form avec "trou" sur quelque chose et vous verrez que vous pouvez cliquer à travers ce trou (comme décrit par MSDN)
- Maintenant, changez les deux couleurs en "Rouge" et lancez l'application - vous verrez le " trou "mais vous ne pouvez plus cliquer si
Savez-vous pourquoi cela se passe-t-il? Quelle est la règle? J'utilise .NET 4 avec VS2010, testé sur deux ordinateurs avec la même configuration.
Pas beaucoup de code pour cela ... Mais je peux poster des paramètres dans le concepteur:
private void InitializeComponent()
{
this.panel1 = new System.Windows.Forms.Panel();
this.SuspendLayout();
//
// panel1
//
this.panel1.BackColor = System.Drawing.Color.Red;
this.panel1.Location = new System.Drawing.Point(23, 26);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(229, 176);
this.panel1.TabIndex = 0;
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(284, 262);
this.Controls.Add(this.panel1);
this.Name = "Form1";
this.Text = "Form1";
this.TransparencyKey = System.Drawing.Color.Red;
this.ResumeLayout(false);
}
//that outside:
private System.Windows.Forms.Panel panel1;
Pouvez-vous poster votre code? – ChrisF
Pas de repro avec XP SP3 et .NET 2.0, désolé. – Bobby
Quelqu'un peut-il essayer avec .NET 4.0? – Episodex