日期:2014-05-18  浏览次数:20771 次

如何给标题栏命名当前登陆用户名?
C#程序。想给主窗体(FrmMain)的标题上命名一个当前登陆用户,所以用户名肯定是变量。
我先定义了一个全局变量UserName获取登陆的用户,然后在主窗体的Form_Load方法中写了this.Text="登录用户:"+UserName;
但是运行程序后,标题栏上只写着“登录用户:”,没后面。但是根据测试,UserName确实已经获取到了登陆的用户名。
麻烦大家支招,应该怎么做?

------解决方案--------------------
你怎么知道已经取到了登陆用户名?最好设个断点看一下。

我刚才试了一下,设一个全局变量name = "xyz",先是没问题。

然后又在页面上放一个button和textBox,点击按钮将把textBox里的内容显示到标题栏。

public partial class Form2 : Form
{
public string name = "xyz";
public Form2()
{
InitializeComponent();
this.Text = "abc " + name;
}

private void button1_Click(object sender, EventArgs e)
{
this.Text += this.textBox1.Text;
}
}
------解决方案--------------------
得看看Page_Load 中获取到了吗

Debug一下
------解决方案--------------------
UserName是否获取到用户名
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg == WM_NCPAINT)
{
//重写标题
}
}
------解决方案--------------------
主要是要看顺序,
有可能写了,结果被覆盖了
------解决方案--------------------
UserName 声明成static
------解决方案--------------------
可以的 应该就是顺序问题了
先赋值了再写窗体名
------解决方案--------------------
确定是在UserName有值之后才显示!