Visual Studio(C#)中如何获取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
相关产品推荐
相关产品推荐

