this.dataGridTextBoxColumn2, this.dataGridTextBoxColumn3, this.dataGridTextBoxColumn4}); this.dataGridTableStyle1.HeaderForeColor = System.Drawing.SystemColors.ControlText; this .dataGridTableStyle1.MappingName =" p_getZipCodeData" ;; // dataGridTextBoxColumn1 // this.dataGridTextBoxColumn1.Format ="" ;; this。 dataGridTextBoxColumn1.FormatInfo = null; this.dataGridTextBoxColumn1.HeaderText =" Zip Code"; this.dataGridTextBoxColumn1.MappingName =" zip"; this.dataGridTextBoxColumn1.Width = 75; // // dataGridTextBoxColumn2 // this.dataGridTextBoxColumn2.Format ="" ;; this.dataGridTextBoxColumn2.FormatInfo = null; thi s.dataGridTextBoxColumn2.HeaderText =" City"; this.dataGridTextBoxColumn2.MappingName =" city"; this.dataGridTextBoxColumn2.Width = 75; // // dataGridTextBoxColumn3 // this.dataGridTextBoxColumn3.Format ="" ;; this.dataGridTextBoxColumn3.FormatInfo = null; this.dataGridTextBoxColumn3.HeaderText =" County"; this.dataGridTextBoxColumn3.MappingName =" county"; this.dataGridTextBoxColumn3.Width = 75; // dataGridTextBoxColumn4 // 这个.dataGridTextBoxColumn4.Format ="" ;; this.dataGridTextBoxColumn4.FormatInfo = null; this.dataGridTextBoxColumn4.HeaderText =" State"; this.dataGridTextBoxColumn4.MappingName =" state" ;; this.dataGridTextBoxColumn4.Width = 75; // // btnLoad // this.btnLoad.Location = new System.Drawing.Point( 472,8); this.btnLoad.Name =" btnLoad"; this.btnLoad.TabIndex = 2; this.btnLoad.Text =" Load"; this.btnLoad.Click + = new System.EventHandler(this.btnLoad_Click); // // tboxLookupZipCode // this.tboxLookupZipCode.Location = new System.Drawing.Point(136,8); this.tboxLookupZipCode.Name =" tboxLookupZipCode" ;; this.tboxLookupZipCode.Size = new System.Drawing.Size(200,20); this.tboxLookupZipCode.TabIndex = 1; this.tboxLookupZipCode.Text ="" ;; // // lblLookupParameter // this.lblLookupParameter.Location = new System.Drawing.Point(24,8); this.lblLookupParameter.Name = " lblLookupParameter"; this.lblLookupParameter.Size = new System.Drawing.Size(100,20); this.lblLookupParameter.TabIndex = 3; this.lblLookupParameter.Text =" ;邮政编码" ;; this.lblLookupParameter.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // btnOK // this.btnOK.D ialogResult = System.Windows.Forms.DialogResult.OK; this.btnOK.Location = new System.Drawing.Point(378,352); this.btnOK.Name =" btnOK"; this.btnOK.TabIndex = 3; this.btnOK.Text =" OK"; this.btnOK.Click + = new System.EventHandler(this.btnOK_Click); // // btnCancel // this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.btnCancel.Location = new System.Drawing .Point(472,352); this.btnCancel.Name =" btnCancel"; this.btnCancel.TabIndex = 4; this.btnCancel.Text =" Cancel"; this.btnCancel.Click + = new System.EventHandler(this.btnCancel_Click); // // fclsLookup // this.AutoScaleBaseSize = new System .Drawing.Size(5,13); this.ClientSize = new System.Drawing.Size(568,390); this.Controls.Add(this.btnCancel); this .Controls.Add(this.btnOK); this.Controls.Add(this.lblLookupParameter); this.Controls .Add(this.tboxLookupZipCode); this.Controls.Add(this.btnLoad); this.Controls.Add(this.dataGrid1); this.Name =" fclsLookup" ; this.Text =" Lookup"; ((System.ComponentModel.ISupportInitialize)(this.d sLookup1))。EndInit(); ((System.ComponentModel.ISupportInitialize) (this.d ataGrid1))。EndInit(); this.ResumeLayout(false); } #endregion private void btnLoad_Click( object sender,System.EventArgs e) {sqSelectCommand1.Parameters [" @ zip"]。Value = tboxLookupZipCode.Text; dsLookup1.Clear(); sqlDataAdapter1。填充(dsLookup1); } 私有空btnOK_Click(对象发送者,System.EventArgs e) { 关闭(); } private void btnCancel_Click(object sender,System.EventArgs e) {关闭(); } 私有空dataGrid1_Navigate(object sender, System.Windows.Forms.NavigateEventArgs ne) { Clos e(); } protected void dataGrid1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { string strMessage = "TEST"; //strMessage = "Row: " + dataGrid1.HitTest(e.X,e.Y).Row.ToString(); int x = dataGrid1.HitTest(e.X, e.Y).Row; strZipCode = dataGrid1[x, 0].ToString(); strZipCodeDtlId = dataGrid1[x, 3].ToString(); ZipCodeDtlId = strZipCodeDtlId; MessageBox.Show(strZipCode); MessageBox.Show("I still don’’t know what I’’m doing, but I’’m at " + strMessage + ". I need to send back " + strZipCode); } } } I''m a rookie at C# and OO so please don''t laugh! I have a form (fclsTaxCalculator) that contains a text box (tboxZipCode) containing a zip code. The user can enter a zip code in the text box and click a button to determine whether the zip code is unique. If the zip code is not unique, another form/dialog is displayed (fclsLookup) - lookup form/dialog. The zip code and zipid are both passed to the lookup form/dialog by reference. I then load a datagrid with the possible matches (i.e. zip, city, county, state, zipid). When the user clicks the row in the datagrid, I want to pass the zipid back to the original form/dialog and run a stored procedure. My problem is I do not know how to get the ZipId back to the fclsTaxCalculator form/dialog. I''ve not figured out how to set the variable that was passed in the mousedown event. I''ve search for examples of this and I''ve not been able to track one down - please help!!! My code is shown below: //this is the event in the fclsTaxCalculator class that passes the ref variables private void lblZipCode_Click(object sender, System.EventArgs e) { strZipCode = tboxZip.Text; fclsLookup objLookupForm = new fclsLookup(ref strZipCode, ref strZipCodeDtlId); objLookupForm.Show(); tboxZip.Text = strZipCode; } //this is the fclsLookup that receives the ref variable and I can''t figure out how to //set the variables to the selected value. using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Data.SqlClient; namespace EnspireUtilities { /// <summary> /// Summary description for Lookup. /// </summary> public class fclsLookup : System.Windows.Forms.Form { private System.Data.SqlClient.SqlDataAdapter sqlDataAdapter1; private System.Data.SqlClient.SqlCommand sqlSelectCommand1; private System.Data.SqlClient.SqlConnection sqlConnection1; private EnspireUtilities.dsLookup dsLookup1; private System.Windows.Forms.DataGrid dataGrid1; private System.Windows.Forms.Button btnLoad; private System.Windows.Forms.TextBox tboxLookupZipCode; private System.Windows.Forms.Label lblLookupParameter; private System.Windows.Forms.Button btnOK; private System.Windows.Forms.Button btnCancel; //private string strZipCode = string.Empty; private System.Windows.Forms.DataGridTableStyle dataGridTableStyle1; private System.Windows.Forms.DataGridTextBoxColumn dataGridTextBoxColumn1; private System.Windows.Forms.DataGridTextBoxColumn dataGridTextBoxColumn2; private System.Windows.Forms.DataGridTextBoxColumn dataGridTextBoxColumn3; private System.Windows.Forms.DataGridTextBoxColumn dataGridTextBoxColumn4; public string strZipCode = String.Empty; public string strZipCodeDtlId = String.Empty; /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.Container components = null; public fclsLookup(ref string ZipCode, ref string ZipCodeDtlId) { // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // //tboxLookupZipCode.Text = ZipCode; sqlSelectCommand1.Parameters["@zip"].Value = ZipCode; dsLookup1.Clear(); sqlDataAdapter1.Fill(dsLookup1); strZipCode = ZipCode; strZipCodeDtlId = ZipCodeDtlId; tboxLookupZipCode.Text = strZipCode; this.dataGrid1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.dataGr id1_MouseDown); } /// <summary> /// Clean up any resources being used. /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if(components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.sqlDataAdapter1 = new System.Data.SqlClient.SqlDataAdapter(); this.sqlSelectCommand1 = new System.Data.SqlClient.SqlCommand(); this.sqlConnection1 = new System.Data.SqlClient.SqlConnection(); this.dsLookup1 = new EnspireUtilities.dsLookup(); this.dataGrid1 = new System.Windows.Forms.DataGrid(); this.dataGridTableStyle1 = new System.Windows.Forms.DataGridTableStyle(); this.dataGridTextBoxColumn1 = new System.Windows.Forms.DataGridTextBoxColumn(); this.dataGridTextBoxColumn2 = new System.Windows.Forms.DataGridTextBoxColumn(); this.dataGridTextBoxColumn3 = new System.Windows.Forms.DataGridTextBoxColumn(); this.dataGridTextBoxColumn4 = new System.Windows.Forms.DataGridTextBoxColumn(); this.btnLoad = new System.Windows.Forms.Button(); this.tboxLookupZipCode = new System.Windows.Forms.TextBox(); this.lblLookupParameter = new System.Windows.Forms.Label(); this.btnOK = new System.Windows.Forms.Button(); this.btnCancel = new System.Windows.Forms.Button(); ((System.ComponentModel.ISupportInitialize)(this.d sLookup1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.d ataGrid1)).BeginInit(); this.SuspendLayout(); // // sqlDataAdapter1 // this.sqlDataAdapter1.SelectCommand = this.sqlSelectCommand1; this.sqlDataAdapter1.TableMappings.AddRange(new System.Data.Common.DataTableMapping[] { new System.Data.Common.DataTableMapping("Table", "p_getZipCodeData", new System.Data.Common.DataColumnMapping[] { new System.Data.Common.DataColumnMapping("zip", "zip"), new System.Data.Common.DataColumnMapping("city", "city"), new System.Data.Common.DataColumnMapping("county", "county"), new System.Data.Common.DataColumnMapping("state", "state"), new System.Data.Common.DataColumnMapping("zip_code_dtl _id", "zip_code_dtl_id")})}); // // sqlSelectCommand1 // this.sqlSelectCommand1.CommandText = "[p_getZipCodeData]"; this.sqlSelectCommand1.CommandType = System.Data.CommandType.StoredProcedure; this.sqlSelectCommand1.Connection = this.sqlConnection1; this.sqlSelectCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@RETURN_VALUE" , System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null)); this.sqlSelectCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@zip", System.Data.SqlDbType.VarChar, 10)); // // sqlConnection1 // this.sqlConnection1.ConnectionString = "workstation id=CENGENXP2;packet size=4096;user id=sa;data source=cengenxp2;persis" + "t security info=True;initial catalog=src;password=cocacola"; // // dsLookup1 // this.dsLookup1.DataSetName = "dsLookup"; this.dsLookup1.Locale = new System.Globalization.CultureInfo("en-US"); // // dataGrid1 // this.dataGrid1.DataMember = "p_getZipCodeData"; this.dataGrid1.DataSource = this.dsLookup1; this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText; this.dataGrid1.Location = new System.Drawing.Point(0, 40); this.dataGrid1.Name = "dataGrid1"; this.dataGrid1.Size = new System.Drawing.Size(568, 288); this.dataGrid1.TabIndex = 0; this.dataGrid1.TableStyles.AddRange(new System.Windows.Forms.DataGridTableStyle[] { this.dataGridTableStyle1}); this.dataGrid1.Navigate += new System.Windows.Forms.NavigateEventHandler(this.dat aGrid1_Navigate); // // dataGridTableStyle1 // this.dataGridTableStyle1.DataGrid = this.dataGrid1; this.dataGridTableStyle1.GridColumnStyles.AddRange (new System.Windows.Forms.DataGridColumnStyle[] { this.dataGridTextBoxColumn1, this.dataGridTextBoxColumn2, this.dataGridTextBoxColumn3, this.dataGridTextBoxColumn4}); this.dataGridTableStyle1.HeaderForeColor = System.Drawing.SystemColors.ControlText; this.dataGridTableStyle1.MappingName = "p_getZipCodeData"; // // dataGridTextBoxColumn1 // this.dataGridTextBoxColumn1.Format = ""; this.dataGridTextBoxColumn1.FormatInfo = null; this.dataGridTextBoxColumn1.HeaderText = "Zip Code"; this.dataGridTextBoxColumn1.MappingName = "zip"; this.dataGridTextBoxColumn1.Width = 75; // // dataGridTextBoxColumn2 // this.dataGridTextBoxColumn2.Format = ""; this.dataGridTextBoxColumn2.FormatInfo = null; this.dataGridTextBoxColumn2.HeaderText = "City"; this.dataGridTextBoxColumn2.MappingName = "city"; this.dataGridTextBoxColumn2.Width = 75; // // dataGridTextBoxColumn3 // this.dataGridTextBoxColumn3.Format = ""; this.dataGridTextBoxColumn3.FormatInfo = null; this.dataGridTextBoxColumn3.HeaderText = "County"; this.dataGridTextBoxColumn3.MappingName = "county"; this.dataGridTextBoxColumn3.Width = 75; // // dataGridTextBoxColumn4 // this.dataGridTextBoxColumn4.Format = ""; this.dataGridTextBoxColumn4.FormatInfo = null; this.dataGridTextBoxColumn4.HeaderText = "State"; this.dataGridTextBoxColumn4.MappingName = "state"; this.dataGridTextBoxColumn4.Width = 75; // // btnLoad // this.btnLoad.Location = new System.Drawing.Point(472, 8); this.btnLoad.Name = "btnLoad"; this.btnLoad.TabIndex = 2; this.btnLoad.Text = "Load"; this.btnLoad.Click += new System.EventHandler(this.btnLoad_Click); // // tboxLookupZipCode // this.tboxLookupZipCode.Location = new System.Drawing.Point(136, 8); this.tboxLookupZipCode.Name = "tboxLookupZipCode"; this.tboxLookupZipCode.Size = new System.Drawing.Size(200, 20); this.tboxLookupZipCode.TabIndex = 1; this.tboxLookupZipCode.Text = ""; // // lblLookupParameter // this.lblLookupParameter.Location = new System.Drawing.Point(24, 8); this.lblLookupParameter.Name = "lblLookupParameter"; this.lblLookupParameter.Size = new System.Drawing.Size(100, 20); this.lblLookupParameter.TabIndex = 3; this.lblLookupParameter.Text = "Zip Code"; this.lblLookupParameter.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // btnOK // this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; this.btnOK.Location = new System.Drawing.Point(378, 352); this.btnOK.Name = "btnOK"; this.btnOK.TabIndex = 3; this.btnOK.Text = "OK"; this.btnOK.Click += new System.EventHandler(this.btnOK_Click); // // btnCancel // this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.btnCancel.Location = new System.Drawing.Point(472, 352); this.btnCancel.Name = "btnCancel"; this.btnCancel.TabIndex = 4; this.btnCancel.Text = "Cancel"; this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); // // fclsLookup // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(568, 390); this.Controls.Add(this.btnCancel); this.Controls.Add(this.btnOK); this.Controls.Add(this.lblLookupParameter); this.Controls.Add(this.tboxLookupZipCode); this.Controls.Add(this.btnLoad); this.Controls.Add(this.dataGrid1); this.Name = "fclsLookup"; this.Text = "Lookup"; ((System.ComponentModel.ISupportInitialize)(this.d sLookup1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.d ataGrid1)).EndInit(); this.ResumeLayout(false); } #endregion private void btnLoad_Click(object sender, System.EventArgs e) { sqlSelectCommand1.Parameters["@zip"].Value = tboxLookupZipCode.Text; dsLookup1.Clear(); sqlDataAdapter1.Fill(dsLookup1); } private void btnOK_Click(object sender, System.EventArgs e) { Close(); } private void btnCancel_Click(object sender, System.EventArgs e) { Close(); } private void dataGrid1_Navigate(object sender, System.Windows.Forms.NavigateEventArgs ne) { Close(); } protected void dataGrid1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { string strMessage = "TEST"; //strMessage = "Row: " + dataGrid1.HitTest(e.X,e.Y).Row.ToString(); int x = dataGrid1.HitTest(e.X, e.Y).Row; strZipCode = dataGrid1[x, 0].ToString(); strZipCodeDtlId = dataGrid1[x, 3].ToString(); ZipCodeDtlId = strZipCodeDtlId; MessageBox.Show(strZipCode); MessageBox.Show("I still don''t know what I''m doing, but I''m at " + strMessage + ". I need to send back " + strZipCode); } } }Jeff, I’’m sorry but I don’’t understand how to implement your suggestion. Are you suggesting that I create a new class called MyClass with a method called LookupDone in it? Also, I’’ve never used a structure. Which Class should the structure be in? I know, you’’re thinking - he is a rookie. I do appreciate your help though. Thanks, Johnny "Jeff Louie" wrote:Jeff,I''m sorry but I don''t understand how to implement your suggestion. Are yousuggesting that I create a new class called MyClass with a method calledLookupDone in it? Also, I''ve never used a structure. Which Class should thestructure be in? I know, you''re thinking - he is a rookie. I do appreciateyour help though.Thanks,Johnny"Jeff Louie" wrote: Hmm... MyClass LookupDone(object sender, object myArgs); fclsLookup objLookupForm = new fclsLookup(MyClass this, strZipCode, strZipCodeDtlId) ... FCLSLookup ... myClass.LookupDone(this,myArgs); // immutable readonly structure or class struct myArgs { private zip; public string Zip { get {return this.zip;} } } Regards, Jeff *** Sent via Developersdex http://www.developersdex.com *** Don’’t just participate in USENET...get rewarded for it! Hmm... MyClass LookupDone(object sender, object myArgs); fclsLookup objLookupForm = new fclsLookup(MyClass this, strZipCode, strZipCodeDtlId) ... FCLSLookup ... myClass.LookupDone(this,myArgs); // immutable readonly structure or class struct myArgs { private zip; public string Zip { get {return this.zip;} } } Regards, Jeff *** Sent via Developersdex http://www.developersdex.com *** Don''t just participate in USENET...get rewarded for it! 这篇关于在表单类之间传递参数 - C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云! 08-24 18:06