草庐IT

UI_USER_INTERFACE_IDIOM

全部标签

c# - 为 UI 目的对枚举进行排序

假设我们有一个UI,在这个UI中我们有一个下拉菜单。此下拉列表中填充了枚举的翻译值。恭喜,我们可以按枚举的int值、枚举的名称以及枚举的翻译名称进行排序。但是如果我们想要与上述3种不同的排序方式呢?如何处理这样的需求? 最佳答案 实现你自己的IComparer:usingSystem;usingSystem.Collections.Generic;namespacetest{classProgram{enumX{one,two,three,four}classXCompare:IComparer{publicintCompare(X

c# - 可以在后台线程构建表单,然后在 UI 线程上显示

更新:总结一下我的问题归结为:我希望构建.NET窗体和控件不会创建任何窗口句柄——希望该过程被延迟到Form.Show/Form.ShowDialog谁能证实或否认这是否属实?我有一个带有选项卡控件的大型WinForms表单,表单上有许多控件,在加载时会暂停几秒钟。我已将其缩小到设计器在InitializeComponent中生成的代码,而不是我在构造函数或OnLoad中的任何逻辑。我很清楚我不能尝试在主UI线程以外的任何线程上与UI交互,但我想做的是让应用程序预加载此表单(运行构造函数)在后台,所以一旦用户想要打开它,它就可以立即显示在UI线程上。但是,在后台线程中构建时,在设计器中

c# - ID一次性接口(interface)

我知道IDisposable接口(interface),它在.net中使用,但我心中有一个问题,如果我正在编写所有托管代码,是否实现了IDisposable接口(interface)有什么意义吗?我知道何时以及如何使用Idisposible但我的问题是如果我正在编写所有托管代码说一个简单的类没有什么昂贵所以如果我在这个类中实现IDisposable并做一些清理就像释放一些全局值,是否有意义? 最佳答案 不,您可能不需要使用IDisposble接口(interface)。但是,在某些情况下建议这样做(我可能会在以后添加更多,因为我记得

c# - 如何以编程方式获取 user.config 文件的位置?

我想在我的Windows窗体应用程序中显示user.config文件的位置,以便用户可以轻松找到它。我了解路径是如何创建的,感谢:CanIcontrolthelocationof.NETusersettingstoavoidlosingsettingsonapplicationupgrade?.但是,如果这种情况发生变化,我宁愿不必在我的应用程序中构建路径,尤其是如果有一种获取user.config文件位置的简单方法。 最佳答案 试试这个:varconfig=ConfigurationManager.OpenExeConfigura

c# - 如何正确反射(reflect)基本接口(interface)方法

我通过反射调查了2个接口(interface)和2个类:家长IChild-派生自IParent家长子级-派生自父级对我来说奇怪的是,当我通过对IChild类型的反射进行查看时,我没有找到IParent方法。应用于Child类型的相同代码按预期工作-反射显示Parent方法。interfaceIParent{voidParentMethod();}interfaceIChild:IParent{voidChildMethod();}classParent{publicvoidParentMethod(){}}classChild:Parent{publicvoidChildMethod(

C# 通用接口(interface)和工厂模式

我正在尝试创建一个通用接口(interface),其中一个方法的参数类型由通用定义编辑在意识到我可能通过在Factory创建方法中指定类型参数混淆了问题后,我稍微更改了问题。我所拥有的是我需要对第3方API进行的两种类型的API调用。第一个使用int类型的Id从API检索记录。第二个也从API检索记录,但Id是一个字符串(guid)。我为每种记录类型(ClientEntity和InvoiceEntity)都有一个类,它们都实现了一个通用接口(interface),我在其中传入了Id类型这是我在其中声明一个带有id参数的方法的接口(interface)publicinterfaceIGe

c# - 调用线程必须是 STA,因为在 WPF 中很多 UI 组件都需要这个

这个问题在这里已经有了答案:"ThecallingthreadmustbeSTA,becausemanyUIcomponentsrequirethis"errorwhencreatingaWPFpop-upWindowinthread(2个答案)关闭1年前。我的场景:voidInstaller1_AfterInstall(objectsender,InstallEventArgse){try{MainWindowObjMain=newMainWindow();ObjMain.Show();}catch(Exceptionex){Log.Write(ex);}}我收到错误消息“调用线程必

c# - 公共(public)静态字符串 MyFunc() 上的 "Expected class, delegate, enum, interface or struct"错误。什么 's an alternative to "字符串”?

当我尝试使用以下静态函数时出现错误。错误:Expectedclass,delegate,enum,interface,orstruct函数(和类):namespaceMyNamespace{publicclassMyClass{//SomeotherstaticmethodsthatuseClasses,delegates,enums,interfaces,orstructspublicstaticstringMyFunc(stringmyVar){stringmyText=myVar;//DosomestuffwithmyTextandmyVarreturnmyText;}}}这导致

c# - 为什么 C# 允许通过接口(interface)扩展方法而不是类进行多重继承?

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。Improvethisquestion我已经检查过其他问题,令人惊讶的是这个问题似乎并没有被问到。使用扩展方法,接口(interface)提供有限但真实的实现多重继承。这带来了Diamond问题,与基于类的多重继承相同。为什么这比许多人认为如此可怕的基于类的多重继承更好或更容易接受?这实际上似乎是一种更糟糕的实现多重继承的方式,因为扩展方法不能进入接口(interface)本身,甚至不能进入实现该接口(interface)的类,但

c# - 如何将接口(interface)方法的返回类型定义为另一个接口(interface)?

我不熟悉接口(interface)和抽象类。我想创建几个接口(interface)来为购物车系统的对象定义核心方法和变量。然后我想创建实现核心功能的抽象类。这个想法是,它们可以被其他类以略有不同的方式用于不同的项目。这是我的(精简版)界面:publicinterfaceICart{...ListCartItems{get;set;}}publicinterfaceICartItem{intProductId{get;set;}intQuantity{get;set;}}这是我实现ICart的抽象Cart类(同样,只显示相关行):publicabstractclassCart:ICart