You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio(C#)中如何获取ToolStripMenuItem的文本内容

问题分析与解决:无法获取ToolStripMenuItem的文本内容

问题根源

你在事件方法里新建了一个空的ToolStripMenuItem对象,这个全新的控件根本不是你点击的那个按钮,它的Text属性自然是空的,所以fontName始终拿不到有效内容。

正确实现代码

你需要利用事件方法里的sender参数——它就是触发点击事件的那个按钮本身,只需将其转换为ToolStripMenuItem类型即可获取文本:

private void fontButton_Click(object sender, EventArgs e)
{
    // 将触发事件的控件转换为ToolStripMenuItem类型
    ToolStripMenuItem fontBtn = sender as ToolStripMenuItem;
    
    // 安全判断:避免转换失败导致空引用错误
    if (fontBtn != null)
    {
        fontName = fontBtn.Text; // Text本身就是字符串,无需额外ToString()
        
        // 应用选中的字体到文本框
        txtDocument.Font = new Font(fontName, fontSize);
        
        // 测试用:显示当前选中的字体名称
        txtDocument.Text = fontName;
    }
}

基础知识点补充

  • sender是.NET事件模型的核心参数,所有控件的事件方法都会传递它,代表当前触发事件的对象。
  • 用as做类型转换是安全的,如果转换失败(比如sender不是ToolStripMenuItem类型)会返回null,后续的空判断能避免程序崩溃。
  • 不要随便新建控件对象,你要操作的是用户点击的那个已经存在的按钮,直接通过sender获取引用就好。

内容的提问来源于stack exchange,提问作者sharkfinley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 01:32:34