首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C# WinForm 登入頁傳遞帳號至主頁面並解析 IP 數據字符串

     編輯:程式設計疑難解答

需求

  1. 登入成功後,將帳號傳遞給主窗體顯示「歡迎您 xxx」。
  2. 將字符串 `var IPData = new Array("xxx.xxx.xxx.xxx","","上海市","");` 裁剪為 `xxx.xxx.xxx.xxx 上海市`。

方案一:構造函數/屬性傳遞 (推薦)

// LoginForm.cs
public partial class LoginForm : Form {
    public string LoggedInUser { get; private set; }
    private void btnLogin_Click(object sender, EventArgs e) {
        if (ValidateUser(txtUser.Text, txtPwd.Text)) {
            LoggedInUser = txtUser.Text;
            this.DialogResult = DialogResult.OK;
            this.Close();
        }
    }
}

// Program.cs
static void Main() {
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    using (var login = new LoginForm()) {
        if (login.ShowDialog() == DialogResult.OK) {
            Application.Run(new MainForm(login.LoggedInUser));
        }
    }
}

// MainForm.cs
public partial class MainForm : Form {
    public MainForm(string userName) {
        InitializeComponent();
        lblWelcome.Text = $"歡迎您 {userName}";
    }
}

方案二:靜態類/單例共享 (簡單但耦合高)

public static class Session { public static string CurrentUser; }
// 登入後 Session.CurrentUser = user; 主窗體讀取 Session.CurrentUser

IP 字符串解析

string raw = "var IPData = new Array(\"192.168.1.1\",\"\",\"上海市\",\"\");";
// 正則提取
var match = Regex.Match(raw, @"""(\d+\.\d+\.\d+\.\d+)""\s*,\s*""""\s*,\s*""([^""]+)""");
if (match.Success) {
    string ip = match.Groups[1].Value;
    string city = match.Groups[2].Value;
    string result = $"{ip} {city}"; // "192.168.1.1 上海市"
}

或簡單 Split:

var parts = raw.Split(new[] { '"' }, StringSplitOptions.RemoveEmptyEntries);
// parts[1]=IP, parts[5]=城市 (視具體格式調整索引)
string result = $"{parts[1]} {parts[5]}";

參考鏈接

CSDN 相關討論

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved