C#写的自定义控件用于网页上

时间:2022-08-31 07:45:03
有谁用C#写过自定义控件然后用于网页上吗
想知道如何将自定义控件用于网页的方法……要可行的……我百度过一些解决方法,但是都不能成功地将控件在网页上显示出来,更不用说运用其功能。
ps:自定义控件在windows窗口(winform)中可以成功使用。

11 个解决方案

#1


补充一下:编程工具为VS2010

#2


此功能已被标记为过时,默认情况下被禁用。
要改客户端注册表设置EnableIEHosting ,对于企业用户还可以做到,对于外部消费者基本不现实。

#3


在你的网站项目中右键添加新项中,选择“”Web用户控件"。会出来一个跟aspx差不多的页面,在这里设计好你的自定义控件,在需要的页面中引用该用户控件即可

#4


你是要生成dll的那种还是用户自定义控件?

#5


不能这么用吧?
不然多数收费控件为啥都是2套

#6


C#写的自定义控件用于网页上: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();//在指定的边界范围内绘制聚焦框
                }
            }
        }

#7


winform和webform机制都不一样,控件也必然是不一样的
你想把winform里的控件直接应用在webform里吗?

#8


引用 4 楼 S314324153 的回复:
你是要生成dll的那种还是用户自定义控件?

自定义控件执行后也是生成dll……我想知道两者有什么区别吗

#9


引用 7 楼 Z65443344 的回复:
winform和webform机制都不一样,控件也必然是不一样的
你想把winform里的控件直接应用在webform里吗?

恩,对。

#10


网上搜下c# activex,好像只能用.net2.0以下的版本;很麻烦,而且只能在IE上用

还有个东西叫Silverlight,类似于Flash

#11


简单的就是ascx,直接拖到aspx上就可以,如果mvc的话,是子视图
如果是类似TextBox这种控件,那是控件开发了,控件开发你需要去具体查下相关资料

#1


补充一下:编程工具为VS2010

#2


此功能已被标记为过时,默认情况下被禁用。
要改客户端注册表设置EnableIEHosting ,对于企业用户还可以做到,对于外部消费者基本不现实。

#3


在你的网站项目中右键添加新项中,选择“”Web用户控件"。会出来一个跟aspx差不多的页面,在这里设计好你的自定义控件,在需要的页面中引用该用户控件即可

#4


你是要生成dll的那种还是用户自定义控件?

#5


不能这么用吧?
不然多数收费控件为啥都是2套

#6


C#写的自定义控件用于网页上: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();//在指定的边界范围内绘制聚焦框
                }
            }
        }

#7


winform和webform机制都不一样,控件也必然是不一样的
你想把winform里的控件直接应用在webform里吗?

#8


引用 4 楼 S314324153 的回复:
你是要生成dll的那种还是用户自定义控件?

自定义控件执行后也是生成dll……我想知道两者有什么区别吗

#9


引用 7 楼 Z65443344 的回复:
winform和webform机制都不一样,控件也必然是不一样的
你想把winform里的控件直接应用在webform里吗?

恩,对。

#10


网上搜下c# activex,好像只能用.net2.0以下的版本;很麻烦,而且只能在IE上用

还有个东西叫Silverlight,类似于Flash

#11


简单的就是ascx,直接拖到aspx上就可以,如果mvc的话,是子视图
如果是类似TextBox这种控件,那是控件开发了,控件开发你需要去具体查下相关资料