Wenn ich Sie richtig verstanden habe, benötigen Sie einen costum Form zu schaffen, die ein Textfeld und eine Schaltfläche als eine separate Klasse hat, dann müssen Sie eine Instanz dieser Klasse erstellen und eine .showDialog() aufrufen Methode darauf dann kann der Benutzer nur etwas in den Dialog eingeben (wie eine MessageBox). Danach müssen Sie das eingegebene Passwort von Ihrer Klasse erhalten und eva- luieren, ob das Passwort korrekt ist (ich nehme an, Sie wollen nur einen "einfachen" Schutz und keinen verschlüsselten). Die einfachste Lösung, die mir in den Sinn kam, ist, Ihr Passwort an die andere Klasse zu übergeben und dann dort zu überprüfen, ob Ihr Passwort korrekt ist und ein DialogResult zurückzugeben, das Sie nur auswerten müssen. Somethig wie folgt aus (für Ihre Methode button_6_Click_1()):
const string password = "123456789"; //just an example password
string url = textBox1.Text;
// Get if the user entered the right password
GetPass pass = new GetPass(password);
// Check this with a dialog result
DialogResult result = pass.ShowDialog();
if (result == DialogResult.OK)
{
BlockList.Add(url);
MessageBox.Show("Added " + url + " to blocklist.");
textBox1.Clear();
}
Dies würde der Code für die anderen WinForm-Klasse:
public partial class GetPass : Form
{
// Use a texBox called textBox1 and a button called btn_confirm
private string refPassword;
public GetPass(string password)
{
InitializeComponent();
refPassword = password;
}
private void btn_confirm_Click(object sender, EventArgs e)
{
string password = textBox1.Text;
if (password.CompareTo(refPassword) == 0)
{
this.DialogResult = DialogResult.OK;
}
}
}
Ich werde Sie die Arbeit der Erweiterung dies tun.
@Sharabeel Sie wollen nicht überprüfen, ob die beiden Passwörter direkt übereinstimmen, aber ob ihr Hash (md5 als Beispiel) übereinstimmt, aber das ist ein fortgeschrittenes Thema. – 97hilfel