17 个解决方案
#1
工具栏选择项,然后拖。。。就像里面自带的控件一样的用。
#2
你的意思是指在button的按钮事件中:
CustomControl1 my=new CustomControl1() ;????
CustomControl1 my=new CustomControl1() ;????
#3
没明白意思。
#4
LZ的意思就是调用自己写的控件还不使用系统原来默认的.
相当年我不会的时候发贴问这个问题.一个高手告诉我:编译成DLL文件用.或是直接调用就可以.可惜的是我到现在还是没有明白到底应该怎么弄.
相当年我不会的时候发贴问这个问题.一个高手告诉我:编译成DLL文件用.或是直接调用就可以.可惜的是我到现在还是没有明白到底应该怎么弄.
#5
昨天有一个高手给了这段程序! 我怎么能在现有的form中显示这个控件呢???急急急
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class CustomControl1 : Control
{
public CustomControl1()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Rectangle colorRect = new Rectangle(0, 0, 10, 10);
foreach (KnownColor kc in Enum.GetValues(typeof(KnownColor)))
{
Color color = Color.FromKnownColor(kc);//获取颜色
using (SolidBrush brush = new SolidBrush(color))
{
e.Graphics.FillRectangle(brush, colorRect);
}
//画完一个小巨型,然后填充,每一行的数目满了以后,就到下一行去继续画;
if (colorRect.Right + colorRect.Width + 2 < this.ClientRectangle.Right)
{
colorRect.X += colorRect.Width + 2;
}
else
{
colorRect.X = 0;
colorRect.Y += colorRect.Height + 2;
}
}
}
public Color GetColor(int x, int y)
{
Rectangle colorRect = new Rectangle(0, 0, 10, 10);
foreach (KnownColor kc in Enum.GetValues(typeof(KnownColor)))
{
if (colorRect.Contains(x, y))
{
return Color.FromKnownColor(kc);
}
if (colorRect.Right + colorRect.Width + 2 < this.ClientRectangle.Right)
{
colorRect.X += colorRect.Width + 2;
}
else
{
colorRect.X = 0;
colorRect.Y += colorRect.Height + 2;
}
}
return Color.Empty;
}
protected override void OnMouseClick(MouseEventArgs e)
{
base.OnMouseClick(e);
Console.WriteLine(this.GetColor(e.X, e.Y));
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class CustomControl1 : Control
{
public CustomControl1()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Rectangle colorRect = new Rectangle(0, 0, 10, 10);
foreach (KnownColor kc in Enum.GetValues(typeof(KnownColor)))
{
Color color = Color.FromKnownColor(kc);//获取颜色
using (SolidBrush brush = new SolidBrush(color))
{
e.Graphics.FillRectangle(brush, colorRect);
}
//画完一个小巨型,然后填充,每一行的数目满了以后,就到下一行去继续画;
if (colorRect.Right + colorRect.Width + 2 < this.ClientRectangle.Right)
{
colorRect.X += colorRect.Width + 2;
}
else
{
colorRect.X = 0;
colorRect.Y += colorRect.Height + 2;
}
}
}
public Color GetColor(int x, int y)
{
Rectangle colorRect = new Rectangle(0, 0, 10, 10);
foreach (KnownColor kc in Enum.GetValues(typeof(KnownColor)))
{
if (colorRect.Contains(x, y))
{
return Color.FromKnownColor(kc);
}
if (colorRect.Right + colorRect.Width + 2 < this.ClientRectangle.Right)
{
colorRect.X += colorRect.Width + 2;
}
else
{
colorRect.X = 0;
colorRect.Y += colorRect.Height + 2;
}
}
return Color.Empty;
}
protected override void OnMouseClick(MouseEventArgs e)
{
base.OnMouseClick(e);
Console.WriteLine(this.GetColor(e.X, e.Y));
}
}
}
#6
高手指点 在线等 有加分
#7
应该不是很难吧
首先得到前台代码去注册,在page命令下注册
然后就可以使用了
首先得到前台代码去注册,在page命令下注册
然后就可以使用了
#8
能说的在具体点吗?初学者,谅解!
#9
对了,我是一个WINDOWS应用程序,能用page吗?
#10
你是win的啊,没看代码
那我还真没试过,不好意思啊
那我还真没试过,不好意思啊
#11
public partial class CustomControl1 : Contr {
// 你的代码
}
改为
public partial class CustomControl1 : Contr, System.ComponentModel.Component {
// 你的代码
}
如果是VS2005,在你的工具箱就能看见 CustomControl1 的组件了。VS2003的不清楚。
// 你的代码
}
改为
public partial class CustomControl1 : Contr, System.ComponentModel.Component {
// 你的代码
}
如果是VS2005,在你的工具箱就能看见 CustomControl1 的组件了。VS2003的不清楚。
#12
如果你编译这个代码没错的话,在工具箱就能看到这个控件的,图标是个小齿轮。
#13
如果成功,它就会出现在工具栏里,当然你也可以找到编译出来的DLL添加到工具栏,用法和其他控件是一样的
#14
我也有类似的问题,我托到form中运行时,说找不到WindowsControlLibrary1/Debug/WindowsControlLibrary1.dll无法运行,请高手指点
#15
10楼的是多重继承,c#里面是不允许的
(虽然已经过了将近两年 不指望回帖了 但是道理还是要说明的)
(虽然已经过了将近两年 不指望回帖了 但是道理还是要说明的)
#16
这一次隔了3年了
#17
楼上是有多无聊~~
#1
工具栏选择项,然后拖。。。就像里面自带的控件一样的用。
#2
你的意思是指在button的按钮事件中:
CustomControl1 my=new CustomControl1() ;????
CustomControl1 my=new CustomControl1() ;????
#3
没明白意思。
#4
LZ的意思就是调用自己写的控件还不使用系统原来默认的.
相当年我不会的时候发贴问这个问题.一个高手告诉我:编译成DLL文件用.或是直接调用就可以.可惜的是我到现在还是没有明白到底应该怎么弄.
相当年我不会的时候发贴问这个问题.一个高手告诉我:编译成DLL文件用.或是直接调用就可以.可惜的是我到现在还是没有明白到底应该怎么弄.
#5
昨天有一个高手给了这段程序! 我怎么能在现有的form中显示这个控件呢???急急急
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class CustomControl1 : Control
{
public CustomControl1()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Rectangle colorRect = new Rectangle(0, 0, 10, 10);
foreach (KnownColor kc in Enum.GetValues(typeof(KnownColor)))
{
Color color = Color.FromKnownColor(kc);//获取颜色
using (SolidBrush brush = new SolidBrush(color))
{
e.Graphics.FillRectangle(brush, colorRect);
}
//画完一个小巨型,然后填充,每一行的数目满了以后,就到下一行去继续画;
if (colorRect.Right + colorRect.Width + 2 < this.ClientRectangle.Right)
{
colorRect.X += colorRect.Width + 2;
}
else
{
colorRect.X = 0;
colorRect.Y += colorRect.Height + 2;
}
}
}
public Color GetColor(int x, int y)
{
Rectangle colorRect = new Rectangle(0, 0, 10, 10);
foreach (KnownColor kc in Enum.GetValues(typeof(KnownColor)))
{
if (colorRect.Contains(x, y))
{
return Color.FromKnownColor(kc);
}
if (colorRect.Right + colorRect.Width + 2 < this.ClientRectangle.Right)
{
colorRect.X += colorRect.Width + 2;
}
else
{
colorRect.X = 0;
colorRect.Y += colorRect.Height + 2;
}
}
return Color.Empty;
}
protected override void OnMouseClick(MouseEventArgs e)
{
base.OnMouseClick(e);
Console.WriteLine(this.GetColor(e.X, e.Y));
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class CustomControl1 : Control
{
public CustomControl1()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Rectangle colorRect = new Rectangle(0, 0, 10, 10);
foreach (KnownColor kc in Enum.GetValues(typeof(KnownColor)))
{
Color color = Color.FromKnownColor(kc);//获取颜色
using (SolidBrush brush = new SolidBrush(color))
{
e.Graphics.FillRectangle(brush, colorRect);
}
//画完一个小巨型,然后填充,每一行的数目满了以后,就到下一行去继续画;
if (colorRect.Right + colorRect.Width + 2 < this.ClientRectangle.Right)
{
colorRect.X += colorRect.Width + 2;
}
else
{
colorRect.X = 0;
colorRect.Y += colorRect.Height + 2;
}
}
}
public Color GetColor(int x, int y)
{
Rectangle colorRect = new Rectangle(0, 0, 10, 10);
foreach (KnownColor kc in Enum.GetValues(typeof(KnownColor)))
{
if (colorRect.Contains(x, y))
{
return Color.FromKnownColor(kc);
}
if (colorRect.Right + colorRect.Width + 2 < this.ClientRectangle.Right)
{
colorRect.X += colorRect.Width + 2;
}
else
{
colorRect.X = 0;
colorRect.Y += colorRect.Height + 2;
}
}
return Color.Empty;
}
protected override void OnMouseClick(MouseEventArgs e)
{
base.OnMouseClick(e);
Console.WriteLine(this.GetColor(e.X, e.Y));
}
}
}
#6
高手指点 在线等 有加分
#7
应该不是很难吧
首先得到前台代码去注册,在page命令下注册
然后就可以使用了
首先得到前台代码去注册,在page命令下注册
然后就可以使用了
#8
能说的在具体点吗?初学者,谅解!
#9
对了,我是一个WINDOWS应用程序,能用page吗?
#10
你是win的啊,没看代码
那我还真没试过,不好意思啊
那我还真没试过,不好意思啊
#11
public partial class CustomControl1 : Contr {
// 你的代码
}
改为
public partial class CustomControl1 : Contr, System.ComponentModel.Component {
// 你的代码
}
如果是VS2005,在你的工具箱就能看见 CustomControl1 的组件了。VS2003的不清楚。
// 你的代码
}
改为
public partial class CustomControl1 : Contr, System.ComponentModel.Component {
// 你的代码
}
如果是VS2005,在你的工具箱就能看见 CustomControl1 的组件了。VS2003的不清楚。
#12
如果你编译这个代码没错的话,在工具箱就能看到这个控件的,图标是个小齿轮。
#13
如果成功,它就会出现在工具栏里,当然你也可以找到编译出来的DLL添加到工具栏,用法和其他控件是一样的
#14
我也有类似的问题,我托到form中运行时,说找不到WindowsControlLibrary1/Debug/WindowsControlLibrary1.dll无法运行,请高手指点
#15
10楼的是多重继承,c#里面是不允许的
(虽然已经过了将近两年 不指望回帖了 但是道理还是要说明的)
(虽然已经过了将近两年 不指望回帖了 但是道理还是要说明的)
#16
这一次隔了3年了
#17
楼上是有多无聊~~