C# DEV控件 判断 窗口中是不是有 barManager 控件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# DEV控件 判断 窗口中是不是有 barManager 控件相关的知识,希望对你有一定的参考价值。

不能用遍历 foreach (Control con in Form.Controls)的方法来索取,获取不到。
Form我是用反射的方法获取的(Form frm = asb.CreateInstance(type.FullName) as Form;),目的是为了让barManager里面的按钮可以按需求显示与隐藏,

foreach (var control in frm.Controls)
            
                var c = control as IBarObject;
                if (c != null)
                
                    var m = c.Manager;
                    if (m != null)
                    
                        //这个m就是BarManager
                        break;
                    
                
            

 如果用linq就更简化了

            var m = frm.Controls.OfType<IBarObject>().Select(x => x.Manager).FirstOrDefault();
            if (m != null)
            
                //这个m就是BarManager
            

追问

谢谢给予帮助! 不过用frm.Controls的方法不行的 我这个是第三方的DEV控件 它不继承自Control类,所以获取不到。楼上的友友给与了答案,你可以去看看

追答

你最好试一下,我亲测的没有问题。

并且不需要反射。对于private字段,反射并不总是有效的。

参考技术A

追问

谢谢帮助啊! 原来FieldInfo是这么用的! 太感谢了!

追答

不用谢 你看看Designer.cs文件 就会明白为什么Barmanager是字段而不能从Form.Controls中获取了

本回答被提问者采纳

C#中openFileDialog1的问题

我做了一个信息查询的当点击信息查询的时候有选择修改的 跳出修改窗口将数据信息填充到这个窗口上 带上在文件上传哪里不选择一次的话 会提示 无法找到文件openFileDialog1 必须重新浏览打开一次文件才可以,添加就没有这个问题,只有修改的时候才这样

修改的时候代码有问题 你是不是没有判断有没有打开openFileDialog啊,而且上面那个错误是不是你的控件openFileDialog1默认文件名就是openFileDialog1这个啊 还有是【浏览】不是【游览】 有错别字 参考技术A 是不是传文件名参数的时候传错了? 参考技术B 求贴代码,你可以设置断点,调错,这个提示问题是说文件上传错误,你可以看文件上传代码的调用情况。

以上是关于C# DEV控件 判断 窗口中是不是有 barManager 控件的主要内容,如果未能解决你的问题,请参考以下文章

C#如何判断winform窗口里面的所有控件都没有点击

c# 在groupbox控件中判断的内嵌的radiobutton是不是已选

C#使用winform的控件记录

C#中openFileDialog1的问题

C# winform,怎么通过控件的Name属性判断某个控件是不是已经存在

c# winform程序,判断是不是打开同一个窗口的问题。