WPF菜鸟问题:在登录窗体有Textbox1用于输入用户名,在主界面窗体有一个label1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF菜鸟问题:在登录窗体有Textbox1用于输入用户名,在主界面窗体有一个label1相关的知识,希望对你有一定的参考价值。

怎么实现主界面的label1,显示登录成功时输入的用户名,最好是代码,初学,对于理论不是很理解

登录时的用户名应该在之后会用很多次,所以使用全局变量Static来保存这个信息。

首先准备保存这个信息的类
例如:UserInfo(用户信息)

public class UserInfo

    public string UserName  get; set;  

之后在初始化这个类(在这里就在登录窗体里吧,另做个SystemInfo之类的类更好)
例如:Window1(你的登录页面)

public partial class Window1 : Window

    public static UserInfo gUserInfo; // 全局类
    public Window1()
    
        InitializeComponent();
        this.btnLogin.Click += new RoutedEventHandler(btnLogin_Click); 
    
    void btnLogin_Click(object sender, RoutedEventArgs e)
    
        if(/*验证*/true)
          
            // 登录成功 
            gUserInfo.UserName = "要保存的用户名";
            
            // 打开主页面  
         
     

 在MainWindow的Load事件里如下

lblUserName.Content = Window1.gUserInfo.UserName;

// 有问题请追问。

追问

this.btnLogin.Click += new RoutedEventHandler(btnLogin_Click);
不知道这行代码什么意思? btnLogin编译不通过啊,提示不包含这个的定义

追答

简单说就是在CS代码上添加btnLogin按钮的点击事件。(要是在Xaml已添加事件就不需要这行)
编译不用过是因为在Xaml界面上没有这个名字的控件。把btnLogin改成你的登录按钮的名字就可以了。(你的界面应该有『登录』这个按钮吧)

参考技术A

你应该有个登录界面和主体界面吧

设置一个主体界面的参数

假如主体界面的为Windows1

 public partial class Window1 : Window
    
        public Window1(string name)
        
            InitializeComponent();
            label1.Content = name;
        
    

在你登录成功的后 显示界面的时候实例化一下就行了

  string name="用户名";
  Window1 w = new Window1(name);
  w.Show();

这个比较简单 不用再做一个实体类来存这个变量

拿到名字后在做成全局变量,也可以直接读赋值后的lable的值

本回答被提问者采纳
参考技术B string UsersName="admin";
if(textbox1.text!=UsersName)
MessageBox.Show("输入错误")

else
MessageBox.Show("输入正确") //可以跳转到你的主界面了
追问

不是登录验证那个,是想在主界面的一个label中显示当前登录的用户名

以上是关于WPF菜鸟问题:在登录窗体有Textbox1用于输入用户名,在主界面窗体有一个label1的主要内容,如果未能解决你的问题,请参考以下文章

winform控件问题

wpf登录窗体跳转怎么做

使用子表单上列表框选择的值填充文本框

C# wpf 中 一个窗体中的texbox内容显示另一个窗体中的listview中的内容。如何实现

C#语言第一课-Windows窗体基本功能(Login登录界面)

如何将窗体窗口的所有者设置为 WPF 窗口?