- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有人知道一个好的组件(C# WinForms)允许创建一个选项(设置)表单,给定一个带有一堆属性的自定义类?我不是在寻找 Shiny 的东西,而是在寻找比属性网格更好的东西。我可以轻松处理视觉部分,但我只是不想浪费时间进行反射以添加和绑定(bind)控件(如果它已经存在)。
我很确定我以前在某个地方见过类似 Visual Studio 选项的表单,它是动态创建的(一些属性附加到类的属性,以允许分组和附加信息)。
[编辑] 例如,我可能有一个选项类:
public class Options : SerializableOptions<Options>
{
[Category("General")]
[Name("User name")]
[Description("Some text")]
public string Username { get; set; }
[Category("General")]
[Name("Log in automatically")]
public bool LogInAutomatically { get; set; }
[Category("Advanced")]
// ConnectionType is enum
public ConnectionType ConnectionType { get; set; }
// ...
}
将它传递给此表单后,它将创建两个面板(“常规”和“高级”),第一个面板上有一个 CheckBox 和一个 TextBox,第二个面板上有一个 ComboBox(具有所有可用的枚举)。
如果没有这样的控件,你们用什么?为每个选项手动添加、填充、格式化和绑定(bind)控件?
最佳答案
我不知道有任何控件可以让您执行此操作,但您自己操作并不难。 The easiest way is to create the dialog shell, a user control which acts as the base class for the options "panels", one (or more) attribute to control the name and grouping information, and an interface (which the user control implements) .
您的每个自定义选项面板都派生自用户控件并覆盖某种Initialize()
和Save()
方法(由用户控件提供)。它还提供确定名称/分组信息的属性(或多个属性)。
在对话框外壳中,反射性地检查程序集(或所有加载的程序集)中的所有公共(public)类型,以查找实现您的接口(interface)的类型。找到类型后,获取属性以确定将其放置在分组中的位置(此处最简单的方法是使用 TreeView ),调用 Activator.CreateInstance
创建用户控件的实例,然后将其存储在 Tag
属性中。当用户单击分组中的条目(树节点)时,获取 Tag
并将包含用户控件的面板设置为 Tag
属性中的对象。最后,当用户在对话框中单击“确定”时,遍历树节点,获取 Tag
属性并调用 Save
方法。
更新:另一种选择是使用属性网格控件。它没有“漂亮”的 UI 外观,但功能非常强大,已经支持按类别属性分组,并具有很大的灵 active 。您可以使用显示所有选项的单个属性网格,或者使用“混合”方法,使用 TreeView 按主要功能(插件、功能等)分组,可能基于类型。当用户单击该节点时,为属性网格提供对象实例。这种方法的唯一缺点是,当对属性网格值进行更改时,它们是“实时的”,因为基础属性会立即更改,这意味着除了保存每个值的副本外,没有“取消”的概念可以自己改变和执行某种类型的“重置”。
关于c# - 动态选项对话框(使用反射),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1547867/
我有一个删除按钮,单击该按钮时我希望弹出一个对话框,然后单击“确定”它应该执行 Ajax 调用,否则不应该执行任何操作。这是代码 $('.comment-delete').click(function
public void exitGame() { //pop up dialogue Platform.exit(); } 我已经尝试了很多我在互联网上看到的不同的东西,但我什么都做不了。我所
我有一个典型的素面对话框,效果很好,但是当有人在对话框外单击时,我找不到任何关闭它的选项。我看到了一些jquery示例,我想我可以将其改编为primefaces对话框,但首先要确保还没有解决方案? 谢
我试图让 jquery 对话框在单击按钮时启动,但似乎不起作用。任何帮助将不胜感激: $('#wrapper').dialog({ autoOpen: false,
我试图单独更改标题栏颜色。所以我使用了 .ui-dialog-titlebar ,但它不起作用,所以我尝试使用 ui-widght-header ,它也反射(reflect)到数据表..请告知。 //
我的页面上有 div(box),我正在使用此脚本将 div 显示为对话框。在该 div 内,我有一个超链接,单击该超链接时,我想淡出对话框并关闭。对话框的内容淡出,但对话框的边框保持不变。如果我将 $
我当前有一个对话框,其内容有两个输入(这两个输入使用 .datepicker())。当我打开对话框时,第一个输入成为焦点,并且第一个日期选择器自动出现。我尝试隐藏 div 并模糊输入,但这会导致日期选
我想即时创建一个 jQuery 对话框。我正在使用这个: var newDiv = $(document.createElement('div')); $(newDiv).html('hello th
child: RaisedButton( color: const Color(0xFF5867DD), onPressed: (){ updateProfilePic();
我有下面的 jquery 代码,我已根据我的要求对其进行了自定义,但存在一些问题。首先,用户单击“单击此处”,不会显示对话框。当用户单击“关闭”时,对话框不会消失。非常感谢您提供的所有帮助。
如何创建一个对话框,该对话框的顶部有一个文本,其下方有一个空白区域,用户可以在其中键入内容,在右侧下方有一个 OKAY 按钮,当您单击该按钮时,对话框消失? 像这样: 最佳答案 String inpu
这是一个简单得多的问题。 private static AplotBaseDialog dlg; public Object execute(final ExecutionEvent event) t
我正在为我的应用程序开发小部件。应该有一些小部件可以实现相同的功能,唯一的区别在于它们的布局(主题/外观) 我会创建一个对话框或屏幕,用户可以在其中选择他喜欢的小部件。当我选择它们时,我在很多小部件中
我有 jQuery 对话框窗口,在某些操作中我有一个加载的 blockUI 插件。 我面临的问题是,即使 AJAX 图像仍在显示,我仍然能够在执行 ajax 操作时执行操作。 另一方面,JSP 页面在
我非常熟悉将 jQuery 对话框 div 设置为可见后将其附加到表单元素的技巧。我已经在 .NET 中这样做了一百次左右,而且效果很好!然而,我正在尝试在 Coldfusion 网站上执行此操作,这
我想使用jquery对话框来收集用户信息(例如用户名)。我如何使用 Jquery 做到这一点并将数据收集到 Javascript 变量中? 这是我迄今为止的尝试: // Dialog here, ho
如何设置 jquery 对话框按钮的工具提示?请参阅下面的内容...这里没有 id 或样式类。 jQuery("#dialog-form").dialog ({ autoOpen: false,
我有调用对话框的 JS 函数 function SomeFunction { $('#editformdialog').dialog('open'); } 这显然已经简化了。但是,我得到 a is u
我正在使用 jquery 模式对话框来显示部分 View 中的数据表。在部分 View 中,我有一些脚本,用于将 HTML 表更改为 jquery DataTables。因此,我需要确保表格在对话框中
我正在尝试添加透明的 JQuery 对话框。但我遇到了两个问题: 文本“Hello”的背景不会变得透明 删除标题栏后,我无法再拖动对话框 这些评论是我迄今为止尝试过的。 //Create ne
我是一名优秀的程序员,十分优秀!