在控件上我使用多个属性属性:
[Browsable(false)]
[Bindable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Obsolete("", true)]
public new Boolean AllowDrop;
Run Code Online (Sandbox Code Playgroud)
我也在许多其他控件属性上使用这些属性.
我想知道是否有办法减少每次写入的代码量.
如果我可以组合这样的多个属性会很好:
[Hidden(true)]
public new Boolean AllowDrop;
Run Code Online (Sandbox Code Playgroud)
该Hidden财产将包括上述所有属性.所以只有一行代码.
也许还有一种方法可以在宏或其他东西中组合属性?
我知道还有其他隐藏属性的方法,但我选择了使用属性的方式.
谢谢
我使用的是.NET Framework 4.6.1,WinForms,PostgreSQL 6.4beta4和Npgsql以及ADO.NET.
我当前的应用程序是一个多用户应用程序,其中所有用户都连接到同一个数据库.
使用DataTable,BindingSource和BindingNavigator将数据绑定到控件.
我想避免两个用户同时编辑DataRow.因为我想在更通用的方法上实现这一点,所以我在考虑创建一个DataTable后代并添加属性LockMode(None,Row,Table).
我发现您可以将ColumnChanged事件与RowState结合使用来检测数据的更改.
我现在知道用户是否正在插入新值,编辑(RowState =已修改)现有值或仅在记录中查找(RowState = Unchanged).
因此,我正在寻找一个用户开始编辑时锁定DataRow的解决方案.在应用程序中,我想在用户导航(通过使用Bindingnavigator或以编程方式)到锁定记录时显示消息.
我找到的大多数解决方案都像MySql Server一样:如何执行行锁定?或TransactionScope锁定表和IsolationLevel.
但是我正在寻找一个PostgreSQL解决方案,所以即使是关于这个主题的文章来自MS(https://msdn.microsoft.com/en-us/library/system.transactions.transactionscope ( v=vs.110 ) .aspx)也不能在这里使用.
如果有PostgreSQL和ADO.NET经验的人能帮助我,我将不胜感激.谢谢.
我注意到当我在Visual Studio中调整元素大小时,Splitter Line被涂成坚固的透明黑色,如下所示:
但是在我自己的Winforms应用程序中,我得到了这个调整大小的行:
我想知道如何改变这个调整大小线的绘画?
我创建了一个Button后代,其中隐藏了所有不使用的属性。
我这样做是这样的:
[Browsable(false)]
[Bindable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Obsolete("", true)]
public new Boolean AllowDrop { get; set; }
Run Code Online (Sandbox Code Playgroud)
大多数属性被正确隐藏,无法使用。
但是,有两个属性我无法摆脱。
有没有办法在设计器中也删除GenerateMember和Modifiers?
c# propertygrid windows-forms-designer visual-studio winforms
我尝试将XButton 1和2(鼠标的侧面按钮)重定向到特定的Visual Studio操作.
当我按下XButton1时,我想编译项目/构建它.F6默认情况下,此操作是绑定的.
当我按下XButton2时,我想在代码和设计视图(WinForms)之间切换.这是必然的F7.
在使用Visual Studio内置工具多次尝试后,我使用AutoHotKey创建了以下脚本:
XButton2::
IfWinActive Microsoft Visual Studio
{
Send {F7}
return
}
XButton1::
IfWinActive Microsoft Visual Studio
{
Send {F6}
return
}
Run Code Online (Sandbox Code Playgroud)
但是,我想知道是否有人知道使用Visual Studio 2015实现相同的原生方式?