我正在構建一系列覆寫Windows默認行為的控制元件,但這最終會變得非常長。我對C#有點陌生,但我知道慣例是將代碼按功能分離到它們自己的類中,以利于閱讀等。如果我想移動修復(完全洗掉)Windows的F1幫助的代碼,我應該怎么做?
目前,我創建了一個檔案夾和一個新的類。
。
namespaceMyWay.Fixers
{
class F1Fixer {
{
///用于知道登錄的用戶的長屁股數湯。有必要,因為當我們以管理員身份運行時,它通常會改變他們的設定。
private string loggedInSIDStr;
public F1Fixer(string SIDStr)
{
loggedInSIDStr = SIDStr;
}
private void CheckF1()
{
using (var hku = RegistryKey.OpenBaseKey(RegistryHive.Users, RegistryView.Registry64)
{
using (var F1key = hku.OpenSubKey(loggedInSIDStr @"SOFTWAREClassesTypeLib{8cec5860-07a1-11d9-b15-000d56bfe6ee}1.0win32")
{
//EGADS! 它被激活了!
if (F1key == null)
{
fckF1RestoreBtn.Enabled = false;
fckF1KillBtn.Enabled = true;
fckF1Status.Text = "那個令人毛骨悚然的家伙正在等待和觀察。"。
fckF1Status.BackColor = Color.FromArgb(255, 232, 0) 。
}
else; }
{
fckF1RestoreBtn.Enabled = true;
fckF1KillBtn.Enabled = false;
fckF1Status.Text = "F1-Help功能已經被放在它的位置上了。"。
fckF1Status.BackColor = Color.FromArgb(0, 200, 50) 。
}
}
}
}
private void fckF1KillBtn_Click(object sender, e)。
{
using (var hku = RegistryKey.OpenBaseKey(RegistryHive.Users, RegistryView.Registry64)
{
RegistryKey setter = hku.CreateSubKey(loggedInSIDStr @"SOFTWAREClassesTypelib{8cec5860-07a1-11d9-b15-000d56bfe6ee}1.0win32", RegistryKeyPermissionCheck.ReadWriteSubTree)。)
setter.SetValue("", "")。)
setter.Close()。
setter = hku.CreateSubKey(loggedInSIDStr @"SOFTWAREClassesTypelib{8cec5860-07a1-11d9-b15-000d56bfe6ee}1.0win64"/span>, RegistryKeyPermissionCheck.ReadWriteSubTree)。
setter.SetValue("", "")。)
setter.Close()。
}
CheckF1();
}
private void fckF1RestoreBtn_Click(object sender, EventArgs e)。
{
Registry.Users.DeleteSubKeyTree(loggedInSIDStr @"SOFTWAREClassesTypelib{8cec5860-07a1-11d9-b15-000d56bfe6ee}1.0"/span>)。
CheckF1()。
}
}
}
問題是,檔案夾中的類不能訪問我的表單元素。當它在program.cs中時,所有現有的(和作業的代碼)突然變成了紅線,沒有任何建議的修復。我沒有找到一個好的教程或視頻來解釋如何正確編碼--也許這被認為是太基本了,但我從來沒有用Java或類似的重類語言編碼過。我通常只是把我的代碼放在幾個檔案中,按一般的功能/想法分開(沒有類)。
如果我打算這樣做,我希望能正確地做到這一點,但我如何做到這一點并使其發揮作用?
uj5u.com熱心網友回復:
你通常會將GUI特定的代碼保留在Form1.cs中,并從中呼叫你在F1Fixer.cs中的業務邏輯(通常通過創建一個Fixer物件或呼叫一個靜態方法)。
否則,您可以通過構造器或函式引數將物件/函式從Form1.cs傳遞到F1Fixer.cs,但這并不是一個好主意。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/326916.html
標籤:

