我现在想在我的验证码中让5组数字随机生成的不同颜色,请问高手该如何实现!

解决方案 »

  1.   

    每次Draw的时候换个颜色的P笔或者画刷。
      

  2.   

    kyle315(给我个支点,我能翘起地球仪) ( ) 信誉:100    Blog  2006-12-28 15:18:02  得分: 0  
     
     
       
    每次绘制时用随机函数随机生成一种颜色(譬如生成1-10个数字,1代表红色,2代表绿色....)  
     
    =======================================
    枚举Pens就可以了,不用自己定义。
      

  3.   

    现在config里写个数据库的连接
    web.config<configuration>
    ……
    <system.web>
           <database>
            <add key="strConn" value="server=.;database=T37_estar;uid=sa;pwd=" />
    </database>
    </system.web>
    ……
    </configuration>Global.asax.csprotected void Session_End(Object sender, EventArgs e)
    {        Application.Lock();
            Application.Remove(Session.SessionID.ToString());
            Application["OL_UserCount"]=(int)Application["OL_UserCount"]-1;
            Application.UnLock();
    }
    登陆的前台
    login.aspx<table class="logintable"><tr>    <td colspan="2" class="tdcaption"><font class="fcaption">ログイン</font></td></tr>
    <tr>        <td><font class="font100">ユーザーID:</font></td></tr>
            <td><asp:TextBox CssClass="itxt" ID="txtName" Runat="server"></asp:TextBox></td></tr>
    <tr>        <td><font class="font100">パスワード:</font></td>
            <td><asp:TextBox CssClass="itxt" ID="txtPwd" TextMode="Password" Runat="server"></asp:TextBox></td></tr>
    <tr>        <td><asp:Button CssClass="ibutton" ID="btnSubmit" Text="login" Runat="server"></asp:Button></td>
            <td><input type="reset" class="ibutton" name="btnReset" value="reset"></td></tr>
    </table>
     
    login.aspx.cs
    using System.Collections.Specialized;
    using System.Data.SqlClient;
    public void LoginBySQL()
    {
         string strConn=(String) ((NameValueCollection) Context.GetConfig("system.web/database"))["strConn"];
         using (SqlConnection conn = new SqlConnection(strConn))
         {         SqlCommand cmd = new SqlCommand("sp_IDPWD",conn);
             cmd.CommandType=CommandType.StoredProcedure;    //这里采用存储过程
             cmd.Parameters.Add("@ID",SqlDbType.VarChar,20);
             cmd.Parameters.Add("@PWD",SqlDbType.VarChar,20);
             cmd.Parameters["@ID"].Value=txtName.Text;
             cmd.Parameters["@PWD"].Value=txtPwd.Text;
             conn.Open();
             using (SqlDataReader dr = cmd.ExecuteReader())
             {
                 if(dr.Read())
                 {
                    bool NotOL=true;
                    for(int i=0;i<Application.Count;i++)
                    {
                       if(Application[Application.GetKey(i).ToString()].ToString()==dr["UserID"].ToString())
                       NotOL=false;
                    }
                    if(NotOL)
                    {
                       Application[Session.SessionID.ToString()]=dr["UserID"].ToString();
                       Application["OL_UserCount"]=(int)Application["OL_UserCount"]+1;
                       Session["UserName"]=dr["UserName"].ToString();//Sessions
                       Response.Redirect("./main/main.aspx");
                    }                else
                       message.Text="已经登陆";
                 }
                 else
                 {
                    message.Text="密码错误";
                 }
            }
        }
    }
    存储过程
    ALTER PROCEDURE dbo.sp_IDPWD
     (
      @id varchar(20),
      @pwd varchar(20)
      /*@pwd datatype OUTPUT*/
     )
    AS
     SET NOCOUNT ON
     select * from [DB].[DB].[Admin] where (UserID=@id) and ([Password]=@pwd)
     RETURN