嘿,我会简单的.我想制作一个这个字符串"abc"的MessageBox,它将从右到左阅读.
我试过这个 Messagebox.Show("abc",MessageBoxOptions.RtlReading);
这有什么用的?
这是我得到的错误:
1:"无法从'System.Windows.Forms.MessageBoxOptions'转换为'string'
2:"无法从'string'转换为'System.Windows.Forms.MessageBoxButtons'"
3:"'System.Windows.Forms.MessageBox.Show(string,string)'的最佳重载方法匹配'有一些无效的参数"
在我的程序的最开始,我正在检查是否可以在COM6上启动与设备的连接.如果找不到设备,那么我想显示一个MessageBox,然后完全结束该程序.
这是我到目前为止在Main()初始程序的功能:
try
{
reader = new Reader("COM6");
}
catch
{
MessageBox.Show("No Device Detected", MessageBoxButtons.OK, MessageBoxIcon.Error)
}
Application.EnableVisualStyles();
Application.SetCompatibleRenderingDefault(false);
Application.Run(new Form1());
Run Code Online (Sandbox Code Playgroud)
当我尝试Application.Exit();在MessageBox命令之后放置一个消息时,MessageBox在没有检测到设备的情况下正确显示,但是当我关闭MessageBox时,Form1仍然打开,但是完全冻结,不会让我关闭它或单击任何按钮因为设备没有连接,所以应该给我一个错误.
我只是想在显示MessageBox之后完全杀掉程序.谢谢.
解决方案:在return;MessageBox关闭后使用该方法之后,当设备未插入时,程序就像我想要的那样退出.但是,当设备插入时,测试后仍然有读取问题.这是我以前没有发现的东西,但这是一个简单的修复.这是我完全正常工作的代码:
try
{
test = new Reader("COM6");
test.Dispose(); //Had to dispose so that I could connect later in the program. Simple fix.
}
catch
{
MessageBox.Show("No device was detected", MessageBoxButtons.OK, MessageBoxIcon.Error)
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
Run Code Online (Sandbox Code Playgroud) 这是我的最终目标:我希望能够根据程序中注册的任何整数输出工具名称.例如,如果程序找到整数1001,1002和1003,则程序将告诉用户找到工具1,工具2和工具3.
我已经使用一个简单的枚举类来实现这一点,其中所有"工具"都被编号并对应于正确的整数.我甚至可以输出枚举作为名称,虽然我想输出一个字符串,最好是一个可以轻松编辑的字符串,而不必过多地更改整个程序.就像我现在可以将它全部编程为工具1,工具3和工具7一样好,然后返回并在我实际知道我正在使用的工具时更改字符串.
我也已经尝试将DescriptionAttribute与此枚举一起使用,但即使已经有几个问题的帮助,我也无法弄清楚如何通过整数查找枚举,然后输出该枚举的描述.我可以做任何一个,或者两个,但不是两个.
所以这让我想知道除了使用Enum类之外是否有更好的方法可以处理所有这些,我听说它在c#中没用.我只是想知道关于如何使用枚举类或c#中的其他方法来实现此目的的任何建议.
如果我需要分享我已经拥有的工作代码,请告诉我.谢谢!