我有下面的代碼,它拋出一個異常NullReference當窗體失去焦點(點擊另一個程序時):如何使用'this'而不是Main.ActiveForm?
namespace MyProg
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
private void Main_Load(object sender, EventArgs e)
{
Mouse Mouse = new Mouse();
Thread Thread = new Thread(new ThreadStart(Mouse.Hook));
Thread.Start();
}
internal static bool IsTransparent = true;
internal static void TransparentForm()
{
Main.ActiveForm.TransparencyKey = (Main.IsTransparent ? Color.Firebrick : Color.AliceBlue);
}
}
public class Mouse
{
public void Hook()
{
while(true)
{
if(Screen.AllScreens.Length > 1)
{
if(Cursor.Position.X < 1300)
{
Main.IsTransparent = true;
Main.ActiveForm.Invoke(new MethodInvoker(Main.TransparentForm));
}
// .....
}
}
}
}
怎樣消除Main.ActiveForm
?
這是爲什麼靜態的,你在哪裏調用此代碼和你有什麼特林做? –
你不能......它似乎是靜態的,所以'this'沒有任何意義.. –
@ sa_ddam213我編輯了我的帖子以包含更多的代碼。 –