服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服务器之家 - 编程语言 - ASP.NET教程 - ASPX向ASCX传值以及文本创建图片(附源码)

ASPX向ASCX传值以及文本创建图片(附源码)

2019-10-29 15:16asp.net教程网 ASP.NET教程

把用户在TextBox输入的文字创建为一个图片,ASCX的ImageButton的ImageUrl重新指向这刚产生的图片,接下来介绍下ASPX向ASCX传值,感兴趣的朋友可以参考下哈

网页ASPX有一个TextBox,另一个ASCX有一个ImageButton,用户点一点这个铵钮,把用户在TextBox输入的文字创建为一个图片,ASCX的ImageButton的ImageUrl重新指向这刚产生的图片。

为了传值,写一个接口,返回aspx的TextBox函数: 

复制代码代码如下:


using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI.WebControls; 
/// <summary> 
/// Summary description for Itransmitable 
/// </summary> 
namespace Insus.NET 

public interface Itransmitable 

TextBox GetTextBoxControl(); 


A.aspx.cs,并实现接口。 

复制代码代码如下:


using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using Insus.NET; 
public partial class A : System.Web.UI.Page,Itransmitable 

protected void Page_Load(object sender, EventArgs e) 


public TextBox GetTextBoxControl() 

return this.tbHid; 


A.aspx,把用户控件B.ascx接入页面。 

复制代码代码如下:


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="A.aspx.cs" Inherits="A" %> 
<%@ Register src="B.ascx" tagname="B" tagprefix="uc1" %> 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title></title> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
<asp:TextBox ID="tbHid" runat="server" /> 
<uc1:B ID="B1" runat="server" /> 
</div> 
</form> 
</body> 
</html> 


B.ascx: 

复制代码代码如下:


<%@ Control Language="C#" AutoEventWireup="true" CodeFile="B.ascx.cs" Inherits="B" %> 
<asp:ImageButton runat="server" ID="imgBmp" OnClick="imgBmp_Click" BorderWidth="1" /> 


B.ascx.cs: 

复制代码代码如下:


using System; 
using System.Collections.Generic; 
using System.Drawing; 
using System.Drawing.Drawing2D; 
using System.Drawing.Imaging; 
using System.Drawing.Text; 
using System.IO; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using Insus.NET; 
public partial class B : System.Web.UI.UserControl 

protected void Page_Load(object sender, EventArgs e) 

this.imgBmp.ImageUrl = GetImagePath("Insus.NET"); //默认值。 

protected void imgBmp_Click(object sender, ImageClickEventArgs e) 

Itransmitable textbox = (Itransmitable)this.Page; //把page转换为接口。 
this.imgBmp.ImageUrl = GetImagePath(textbox.GetTextBoxControl().Text.Trim()); 

//创建图片 
private string GetImagePath(string _text) 

Bitmap bitmap = new Bitmap(1, 1); 
Font font = new Font("Arial", 25, FontStyle.Regular, GraphicsUnit.Pixel); 
Graphics graphics = Graphics.FromImage(bitmap); 
int width = (int)graphics.MeasureString(_text, font).Width; 
int height = (int)graphics.MeasureString(_text, font).Height; 
bitmap = new Bitmap(bitmap, new Size(width, height)); 
graphics = Graphics.FromImage(bitmap); 
graphics.Clear(Color.White); 
graphics.SmoothingMode = SmoothingMode.AntiAlias; 
graphics.TextRenderingHint = TextRenderingHint.AntiAlias; 
graphics.DrawString(_text, font, new SolidBrush(Color.FromArgb(0, 0, 0)), 0, 0); 
graphics.Flush(); 
graphics.Dispose(); 
string fileName = Path.GetFileNameWithoutExtension(Path.GetRandomFileName()) + ".jpg"; 
bitmap.Save(Server.MapPath("~/ImageLib/") + fileName, ImageFormat.Jpeg); 
return "~/ImageLib/" + fileName; 


运行效果: 
ASPX向ASCX传值以及文本创建图片(附源码)

延伸 · 阅读

精彩推荐