想知道如何将自定义控件用于网页的方法……要可行的……我百度过一些解决方法,但是都不能成功地将控件在网页上显示出来,更不用说运用其功能。
ps:自定义控件在windows窗口(winform)中可以成功使用。
11 个解决方案
#1
补充一下:编程工具为VS2010
#2
此功能已被标记为过时,默认情况下被禁用。
要改客户端注册表设置EnableIEHosting ,对于企业用户还可以做到,对于外部消费者基本不现实。
要改客户端注册表设置EnableIEHosting ,对于企业用户还可以做到,对于外部消费者基本不现实。
#3
在你的网站项目中右键添加新项中,选择“”Web用户控件"。会出来一个跟aspx差不多的页面,在这里设计好你的自定义控件,在需要的页面中引用该用户控件即可
#4
你是要生成dll的那种还是用户自定义控件?
#5
不能这么用吧?
不然多数收费控件为啥都是2套
不然多数收费控件为啥都是2套
#6
:C#自定义下拉框控件示例
//给下拉框添加字段
private void Frm_Main_Load(object sender, EventArgs e)
{
beautyComboBox.Items.Add("青椒");//向ComboBox中添加“白菜”字段
beautyComboBox.Items.Add("苹果");//向ComboBox中添加“萝卜”字段
beautyComboBox.Items.Add("柿子");//向ComboBox中添加“土豆”字段
beautyComboBox.Items.Add("香瓜");//向ComboBox中添加“洋葱”字段
beautyComboBox.Items.Add("大蒜");//向ComboBox中添加“南瓜”字段
beautyComboBox.SelectedIndex = 0;//设置ComboBox控件默认选中第一项
}
//美化下拉框控件
private void beautyComboBox_DrawItem(object sender,DrawItemEventArgs e)
{
Graphics gComboBox = e.Graphics;//声明一个GDI+绘图图面类的对象
Rectangle rComboBox = e.Bounds;//声明一个表示矩形的位置和大小类的对象
Size imageSize = imageList1.ImageSize;//声明一个有序整数对的对象
FontDialog typeFace = new FontDialog();//定义一个字体类对象
Font Style = typeFace.Font;//定义一个定义特定的文本格式类对象
if(e.Index >= 0)//当绘制的索引项存在时
{
string temp = (string)beautyComboBox.Items[e.Index];//获取ComboBox控件索引项下的文本内容
StringFormat stringFormat = new StringFormat();//定义一个封装文本布局信息类的对象
stringFormat.Alignment = StringAlignment.Near;//设定文本的布局方式
if(e.State == (DrawItemState.NoAccelerator | DrawItemState.NoFocusRect))//当绘制项没有键盘加速键和焦点可视化提示时
{
e.Graphics.FillRectangle(new SolidBrush(Color.Red),rComboBox);//用指定的颜色填充自定义矩形的内部
imageList1.Draw(e.Graphics,rComboBox.Left,rComboBox.Top,e.Index);//在指定位置绘制指定索引的图片
e.Graphics.DrawString(temp,Style,new SolidBrush(Color.Black),rComboBox.Left + imageSize.Width,rComboBox.Top);//在指定的位置并且用指定的Font对象绘制指定的文本字符串
e.DrawFocusRectangle();//在指定的边界范围内绘制聚焦框
}//codego.net/tags/15/1/
else //当绘制项有键盘加速键或者焦点可视化提示时
{
e.Graphics.FillRectangle(new SolidBrush(Color.LightBlue),rComboBox);//用指定的颜色填充自定义矩形的内部
imageList1.Draw(e.Graphics,rComboBox.Left,rComboBox.Top,e.Index);//在指定位置绘制指定索引的图片
e.Graphics.DrawString(temp,Style,new SolidBrush(Color.Black),rComboBox.Left + imageSize.Width,rComboBox.Top);//在指定的位置并且用指定的Font对象绘制指定的文本字符串
e.DrawFocusRectangle();//在指定的边界范围内绘制聚焦框
}
}
}
//给下拉框添加字段
private void Frm_Main_Load(object sender, EventArgs e)
{
beautyComboBox.Items.Add("青椒");//向ComboBox中添加“白菜”字段
beautyComboBox.Items.Add("苹果");//向ComboBox中添加“萝卜”字段
beautyComboBox.Items.Add("柿子");//向ComboBox中添加“土豆”字段
beautyComboBox.Items.Add("香瓜");//向ComboBox中添加“洋葱”字段
beautyComboBox.Items.Add("大蒜");//向ComboBox中添加“南瓜”字段
beautyComboBox.SelectedIndex = 0;//设置ComboBox控件默认选中第一项
}
//美化下拉框控件
private void beautyComboBox_DrawItem(object sender,DrawItemEventArgs e)
{
Graphics gComboBox = e.Graphics;//声明一个GDI+绘图图面类的对象
Rectangle rComboBox = e.Bounds;//声明一个表示矩形的位置和大小类的对象
Size imageSize = imageList1.ImageSize;//声明一个有序整数对的对象
FontDialog typeFace = new FontDialog();//定义一个字体类对象
Font Style = typeFace.Font;//定义一个定义特定的文本格式类对象
if(e.Index >= 0)//当绘制的索引项存在时
{
string temp = (string)beautyComboBox.Items[e.Index];//获取ComboBox控件索引项下的文本内容
StringFormat stringFormat = new StringFormat();//定义一个封装文本布局信息类的对象
stringFormat.Alignment = StringAlignment.Near;//设定文本的布局方式
if(e.State == (DrawItemState.NoAccelerator | DrawItemState.NoFocusRect))//当绘制项没有键盘加速键和焦点可视化提示时
{
e.Graphics.FillRectangle(new SolidBrush(Color.Red),rComboBox);//用指定的颜色填充自定义矩形的内部
imageList1.Draw(e.Graphics,rComboBox.Left,rComboBox.Top,e.Index);//在指定位置绘制指定索引的图片
e.Graphics.DrawString(temp,Style,new SolidBrush(Color.Black),rComboBox.Left + imageSize.Width,rComboBox.Top);//在指定的位置并且用指定的Font对象绘制指定的文本字符串
e.DrawFocusRectangle();//在指定的边界范围内绘制聚焦框
}//codego.net/tags/15/1/
else //当绘制项有键盘加速键或者焦点可视化提示时
{
e.Graphics.FillRectangle(new SolidBrush(Color.LightBlue),rComboBox);//用指定的颜色填充自定义矩形的内部
imageList1.Draw(e.Graphics,rComboBox.Left,rComboBox.Top,e.Index);//在指定位置绘制指定索引的图片
e.Graphics.DrawString(temp,Style,new SolidBrush(Color.Black),rComboBox.Left + imageSize.Width,rComboBox.Top);//在指定的位置并且用指定的Font对象绘制指定的文本字符串
e.DrawFocusRectangle();//在指定的边界范围内绘制聚焦框
}
}
}
#7
winform和webform机制都不一样,控件也必然是不一样的
你想把winform里的控件直接应用在webform里吗?
你想把winform里的控件直接应用在webform里吗?
#8
自定义控件执行后也是生成dll……我想知道两者有什么区别吗
#9
恩,对。
#10
网上搜下c# activex,好像只能用.net2.0以下的版本;很麻烦,而且只能在IE上用
还有个东西叫Silverlight,类似于Flash
还有个东西叫Silverlight,类似于Flash
#11
简单的就是ascx,直接拖到aspx上就可以,如果mvc的话,是子视图
如果是类似TextBox这种控件,那是控件开发了,控件开发你需要去具体查下相关资料
如果是类似TextBox这种控件,那是控件开发了,控件开发你需要去具体查下相关资料
#1
补充一下:编程工具为VS2010
#2
此功能已被标记为过时,默认情况下被禁用。
要改客户端注册表设置EnableIEHosting ,对于企业用户还可以做到,对于外部消费者基本不现实。
要改客户端注册表设置EnableIEHosting ,对于企业用户还可以做到,对于外部消费者基本不现实。
#3
在你的网站项目中右键添加新项中,选择“”Web用户控件"。会出来一个跟aspx差不多的页面,在这里设计好你的自定义控件,在需要的页面中引用该用户控件即可
#4
你是要生成dll的那种还是用户自定义控件?
#5
不能这么用吧?
不然多数收费控件为啥都是2套
不然多数收费控件为啥都是2套
#6
:C#自定义下拉框控件示例
//给下拉框添加字段
private void Frm_Main_Load(object sender, EventArgs e)
{
beautyComboBox.Items.Add("青椒");//向ComboBox中添加“白菜”字段
beautyComboBox.Items.Add("苹果");//向ComboBox中添加“萝卜”字段
beautyComboBox.Items.Add("柿子");//向ComboBox中添加“土豆”字段
beautyComboBox.Items.Add("香瓜");//向ComboBox中添加“洋葱”字段
beautyComboBox.Items.Add("大蒜");//向ComboBox中添加“南瓜”字段
beautyComboBox.SelectedIndex = 0;//设置ComboBox控件默认选中第一项
}
//美化下拉框控件
private void beautyComboBox_DrawItem(object sender,DrawItemEventArgs e)
{
Graphics gComboBox = e.Graphics;//声明一个GDI+绘图图面类的对象
Rectangle rComboBox = e.Bounds;//声明一个表示矩形的位置和大小类的对象
Size imageSize = imageList1.ImageSize;//声明一个有序整数对的对象
FontDialog typeFace = new FontDialog();//定义一个字体类对象
Font Style = typeFace.Font;//定义一个定义特定的文本格式类对象
if(e.Index >= 0)//当绘制的索引项存在时
{
string temp = (string)beautyComboBox.Items[e.Index];//获取ComboBox控件索引项下的文本内容
StringFormat stringFormat = new StringFormat();//定义一个封装文本布局信息类的对象
stringFormat.Alignment = StringAlignment.Near;//设定文本的布局方式
if(e.State == (DrawItemState.NoAccelerator | DrawItemState.NoFocusRect))//当绘制项没有键盘加速键和焦点可视化提示时
{
e.Graphics.FillRectangle(new SolidBrush(Color.Red),rComboBox);//用指定的颜色填充自定义矩形的内部
imageList1.Draw(e.Graphics,rComboBox.Left,rComboBox.Top,e.Index);//在指定位置绘制指定索引的图片
e.Graphics.DrawString(temp,Style,new SolidBrush(Color.Black),rComboBox.Left + imageSize.Width,rComboBox.Top);//在指定的位置并且用指定的Font对象绘制指定的文本字符串
e.DrawFocusRectangle();//在指定的边界范围内绘制聚焦框
}//codego.net/tags/15/1/
else //当绘制项有键盘加速键或者焦点可视化提示时
{
e.Graphics.FillRectangle(new SolidBrush(Color.LightBlue),rComboBox);//用指定的颜色填充自定义矩形的内部
imageList1.Draw(e.Graphics,rComboBox.Left,rComboBox.Top,e.Index);//在指定位置绘制指定索引的图片
e.Graphics.DrawString(temp,Style,new SolidBrush(Color.Black),rComboBox.Left + imageSize.Width,rComboBox.Top);//在指定的位置并且用指定的Font对象绘制指定的文本字符串
e.DrawFocusRectangle();//在指定的边界范围内绘制聚焦框
}
}
}
//给下拉框添加字段
private void Frm_Main_Load(object sender, EventArgs e)
{
beautyComboBox.Items.Add("青椒");//向ComboBox中添加“白菜”字段
beautyComboBox.Items.Add("苹果");//向ComboBox中添加“萝卜”字段
beautyComboBox.Items.Add("柿子");//向ComboBox中添加“土豆”字段
beautyComboBox.Items.Add("香瓜");//向ComboBox中添加“洋葱”字段
beautyComboBox.Items.Add("大蒜");//向ComboBox中添加“南瓜”字段
beautyComboBox.SelectedIndex = 0;//设置ComboBox控件默认选中第一项
}
//美化下拉框控件
private void beautyComboBox_DrawItem(object sender,DrawItemEventArgs e)
{
Graphics gComboBox = e.Graphics;//声明一个GDI+绘图图面类的对象
Rectangle rComboBox = e.Bounds;//声明一个表示矩形的位置和大小类的对象
Size imageSize = imageList1.ImageSize;//声明一个有序整数对的对象
FontDialog typeFace = new FontDialog();//定义一个字体类对象
Font Style = typeFace.Font;//定义一个定义特定的文本格式类对象
if(e.Index >= 0)//当绘制的索引项存在时
{
string temp = (string)beautyComboBox.Items[e.Index];//获取ComboBox控件索引项下的文本内容
StringFormat stringFormat = new StringFormat();//定义一个封装文本布局信息类的对象
stringFormat.Alignment = StringAlignment.Near;//设定文本的布局方式
if(e.State == (DrawItemState.NoAccelerator | DrawItemState.NoFocusRect))//当绘制项没有键盘加速键和焦点可视化提示时
{
e.Graphics.FillRectangle(new SolidBrush(Color.Red),rComboBox);//用指定的颜色填充自定义矩形的内部
imageList1.Draw(e.Graphics,rComboBox.Left,rComboBox.Top,e.Index);//在指定位置绘制指定索引的图片
e.Graphics.DrawString(temp,Style,new SolidBrush(Color.Black),rComboBox.Left + imageSize.Width,rComboBox.Top);//在指定的位置并且用指定的Font对象绘制指定的文本字符串
e.DrawFocusRectangle();//在指定的边界范围内绘制聚焦框
}//codego.net/tags/15/1/
else //当绘制项有键盘加速键或者焦点可视化提示时
{
e.Graphics.FillRectangle(new SolidBrush(Color.LightBlue),rComboBox);//用指定的颜色填充自定义矩形的内部
imageList1.Draw(e.Graphics,rComboBox.Left,rComboBox.Top,e.Index);//在指定位置绘制指定索引的图片
e.Graphics.DrawString(temp,Style,new SolidBrush(Color.Black),rComboBox.Left + imageSize.Width,rComboBox.Top);//在指定的位置并且用指定的Font对象绘制指定的文本字符串
e.DrawFocusRectangle();//在指定的边界范围内绘制聚焦框
}
}
}
#7
winform和webform机制都不一样,控件也必然是不一样的
你想把winform里的控件直接应用在webform里吗?
你想把winform里的控件直接应用在webform里吗?
#8
自定义控件执行后也是生成dll……我想知道两者有什么区别吗
#9
恩,对。
#10
网上搜下c# activex,好像只能用.net2.0以下的版本;很麻烦,而且只能在IE上用
还有个东西叫Silverlight,类似于Flash
还有个东西叫Silverlight,类似于Flash
#11
简单的就是ascx,直接拖到aspx上就可以,如果mvc的话,是子视图
如果是类似TextBox这种控件,那是控件开发了,控件开发你需要去具体查下相关资料
如果是类似TextBox这种控件,那是控件开发了,控件开发你需要去具体查下相关资料