小编MRS*_*367的帖子

在设计时单击"CollectionEditor"窗口的"确定"按钮后,将子控件添加到自定义控件

我已经创建了自定义控件.它有一个名为"Tab"的属性.此属性添加了一个"FloorsInformation"控件的集合,这些控件从"DockContainerItem"类继承到我的自定义控件.

我的自定义控件属性

现在,我想在单击Tab"CollectionEditor"窗口的"确定"按钮后,将"FloorsInformation"控件添加到我的自定义控件中.

我有"AddTabs"方法.但是,我不能在正确的地方称呼它.我必须在"Tab"属性的"set accessor"中调用"AddTabs"方法,但它永远不会发生.

我也可以从"Tab"属性的"get accessor"调用此方法,但是在"Tab"属性的"get accessor"中调用此方法将导致错误,因为程序访问"get accessor"的"Tab"属性不断.

[Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))]
[ToolboxItem(true), ToolboxBitmap(typeof(ToolboxIconResourceFinder), "FloorsGrouping.bmp")]
[DisplayName("Floors Group")]
[Editor("WindowsFormsControlLibrary2.FloorsGrouping, WindowsFormsControlLibrary2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=197889249da45bfc", typeof(UITypeEditor))]
[Description("Floorssssssss")]
[Category("Saino")]
[DefaultProperty("Text")]
[DesignerCategory("Component")] //Form //Designer //Empty String ("")
public partial class FloorsGrouping : Bar
{
    private Tabs tabs = new Tabs();

    public FloorsGrouping()
    {
        InitializeComponent();
        this.AutoHide = true;
    }

    [Category("Data")]
    [DisplayName("Tabs")]
    [Description("Tabsssssssssssss")]
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
    [Editor(typeof(ItemsCollectionEditor), typeof(UITypeEditor))]
    public Tabs Tab
    {
        get
        {
            //AddTabs();
            return tabs;
        }
        //set
        //{
            //AddTabs();
        //}
    }

    public void AddTabs()
    {
        foreach (DockContainerItem dciItem …
Run Code Online (Sandbox Code Playgroud)

c# design-time runtime custom-controls winforms

6
推荐指数
1
解决办法
1290
查看次数

新创建的自定义列表形状在Microsoft Visio 2013 x64中不起作用

目的:

首先,我应该说我想做什么,然后在下一部分(描述)中描述为实现我的目标而要做的事情。

我想从功能区“插入”选项卡中“图零件”部分的“ 普通容器”创建“ 自定义列表主形状”。然后,我想创建另一个Master Shape,它可以用作Created Custom List Master Shape的成员形状

换句话说,我想将“ 创建的主形状”添加到“ 自定义列表”主形状中,例如将“ 成员”和“分隔符”主形状附加到UML模具的“ 类”主形状中。

因此,在实现我的目标时遇到了一些问题,我将在下一部分中对其进行描述。


说明:

在“ Visio模具(.vssx)”文件中创建了一些新的Master Shape,如下所示:

新创建的具有使用过的主形状的主形状

图1-使用旧的主形状新建的主形状

  1. 属性主形状(绿色框):UML类模具(蓝色框)成员主形状创建。
  2. 对象主形(红色框):从功能区的“插入”选项卡中“图零件”部分的“ 普通容器创建。

已创建属性主形状,以用作对象主形状中的成员形状,就像在UML模具的类主形状中使用的成员主形状一样。

拥有初始成员的班级大师造型

图2-具有初始成员的类主形

成员主形创建的属性主形已更改如下:

  • 我向其中添加了一个形状数据(图3)。

    属性主形状的“形状数据”对话框

    图3-Property Master Shape的“ Shape Data”对话框

  • 我向其中添加了一个数据图形项(图4)。

    属性主形状的“数据图形”和“数据图形项”对话框

    图4-属性主形的“数据图形”和“数据图形项”对话框

  • 我更改了ShapeSheet窗口的 …

visio shape shapes shapesheet stencils

5
推荐指数
1
解决办法
1283
查看次数

隐藏属性网格中字体属性的"..."按钮的可扩展属性的省略号(...)按钮

我在我的自定义控件中添加了一个新属性作为可扩展属性,如Property Grid中的font属性.在Windows窗体应用程序项目中使用自定义控件后,我在属性网格中看到了类似"..."按钮的省略号(...)按钮.(有关详细信息,请参阅下图.)

我的一个自定义控件属性

现在,我想隐藏我的新可扩展属性的省略号(...)按钮.

可扩展的属性代码是:

[DisplayName("Floors Information")]
[Description("Floors Informationnnnnnnnnnnnnnnn")]
[DefaultProperty("TitleText")]
[DesignerCategory("Component")]
public class FloorsInformation : DockContainerItem
{
    private SimilarFloorsInformation similarFloorsInformation = new SimilarFloorsInformation();

    public FloorsInformation()
    {

    }

    [Category("Data")]
    [DisplayName("Similar Floors Panel")]
    [Description("Similar Floors Panellllllllllllllllllll")]
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
    [Editor(typeof(ItemsCollectionEditor), typeof(UITypeEditor))]
    //[TypeConverter(typeof(ExpandableObjectConverter))]
    //[TypeConverter(typeof(SimilarFloorsInformationTypeConverter))]
    public SimilarFloorsInformation SimilarFloorsInfo
    {
        get
        {
            return similarFloorsInformation;
        }
    }
}

[DisplayName("Similar Floors Information")]
[Description("Similar Floors Informationnnnnnnnnnnnnnnn")]
[DefaultProperty("Text")]
[DesignerCategory("Component")]
[TypeConverter(typeof(SimilarFloorsInformationTypeConverter))]
//[TypeConverter(typeof(ExpandableObjectConverter))]
public class SimilarFloorsInformation : ExpandablePanel
{
    private Color canvasColor = SystemColors.Control;
    private eCollapseDirection collapseDirection = eCollapseDirection.LeftToRight;
    private eDotNetBarStyle colorSchemeStyle = eDotNetBarStyle.StyleManagerControlled; …
Run Code Online (Sandbox Code Playgroud)

c# propertygrid design-time custom-controls winforms

2
推荐指数
1
解决办法
1801
查看次数

如何知道dll事件何时被触发

我创建了一个包含此事件处理程序的DLL:

public void tcp1_Data(object sender, Sockets.DataEventArgs e)
{
  Tcp tcp = (Tcp)sender;

  response = "Socket Connection" + tcp.Tag.ToString() + " replied : " + e.Data.ToString();

  tcp.Close();
}
Run Code Online (Sandbox Code Playgroud)

当服务器在套接字连接中写入一些东西时,这将触发 所以,通过这个,我可以读取socket上的数据.

我在另一个项目中使用了这个dll.我想在我的项目(使用dll)中知道服务器在套接字连接上写入数据的确切时间.正如你在tcp1_Data事件中看到的那样,我将结果设置为响应变量,在主项目中(使用了dll),我检查了这个变量polling(如果响应不为null,则表示此事件被触发).但它不是我想要的.我不想一直检查这个变量.

还有其他方法吗?


我试过这个,因为@ThorstenDittmar说:

我的dll项目(名称为ClientSample)包含:

  1. TheClassInDLL Class

    public class TheClassInDLL
    {
    
        public event EventHandler<MyEventArgs> DataEventCalled;
    
        public void tcp1_Data(object sender, Sockets.DataEventArgs e)
        {
            Tcp tcp = (Tcp)sender;
    
            // Note: LOCAL variable
            string myresponse = "Socket Connection" + tcp.Tag.ToString() + " replied : " + e.Data.ToString();
    
            // Call the new event here
            if (DataEventCalled …
    Run Code Online (Sandbox Code Playgroud)

c# dll events

2
推荐指数
1
解决办法
756
查看次数