【发布时间】:2018-12-30 08:04:44
【问题描述】:
我从表单上的文本框中获取信息,然后通过一种方法将其传递给一个类(仍在学习。)我发送的信息通过就好了。在我的代码下面,我按照它们的工作方式列出了它们。
第一步是获取通过的数字(第一组代码)。然后将其传递给具有方法的类,该方法设置为用户控件(第二组代码)。它通过这些步骤,然后将其带到另一个类(第三组代码)以返回我在框内需要的值。然后它又回去了,应该把它贴在盒子里,然而,事实并非如此。
我还是个新手,需要一些帮助。
谢谢,
吉米·迪恩
表格1:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace InformationBookFinal
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
accountInformation.Visible = false;
accountStatus.Visible = false;
}
private void exitBtn_Click(object sender, EventArgs e)
{
this.Close();
}
private void b0_Click(object sender, EventArgs e)
{
accountInformation.Visible = true;
accountStatus.Visible = false;
}
private void b1_Click(object sender, EventArgs e)
{
accountInformation.Visible = false;
accountStatus.Visible = true;
}
}
}
用户控件1:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace InformationBookFinal.User_Control
{
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
List<Information> status = new List<Information>();
List<Information> notes = new List<Information>();
List<Information> info = new List<Information>();
private void searchBtn_Click(object sender, EventArgs e)
{
firstNameRich.Text = string.Empty;
lastNameRich.Text = string.Empty;
dateOFBirthRich.Text = string.Empty;
socialSecurityRich.Text = string.Empty;
statusRich.Text = string.Empty;
invalidLabel.Text = string.Empty;
var invalidMessage = "Please enter a valid account number!";
dataAccess db = new dataAccess();
docRetrieval dr = new docRetrieval();
UserControl2 lb = new UserControl2();
int accountNum;
if (!int.TryParse(accountNumber.Text, out accountNum))
{
invalidLabel.Text = invalidMessage;
}
else
{
status = db.GetStatus(accountNumber.Text);
notes = db.GetNotes(accountNumber.Text);
info = db.GetInfo(accountNumber.Text);
listBox1.DataSource = status;
listBox1.DisplayMember = "FullInfo";
lb.listSet(accountNumber.Text);
//noteDisplay.DataSource = notes;
//noteDisplay.DisplayMember = "Field17";
if (info.Count == 0)
{
invalidLabel.Text = invalidMessage;
}
else
{
firstNameRich.Text = info[0].Field1;
lastNameRich.Text = info[0].Field2;
dateOFBirthRich.Text = info[0].Field3;
socialSecurityRich.Text = info[0].Field4;
addressText.Text = info[0].Field5;
cityText.Text = info[0].Field6;
stateText.Text = info[0].Field7;
zipText.Text = info[0].Field8;
//string path = docRetrieval.doc(accountNumber.Text);
//if (path == "No Document has been found!")
//{
//MessageBox.Show(path);
//}
//else
//{
// string adjustedPath = path.Replace(@"C:\", @"\\EOJ-SOL-DEMO\c$\");
// pdfViewer1.src = adjustedPath;
//}
}
/*if (status.Count == 0)
{
statusRich.Text = "No Status.";
/* No status means documents are not populating out of document management software
* or the field has no number matching account number. */
/*}
else
{
if (status[0].Field9 == "Approved")
{
statusRich.BackColor = Color.LightGreen;
statusRich.Text = status[0].Field9;
}
else if (status[0].Field9 == "Past Due")
{
statusRich.BackColor = Color.Red;
statusRich.Text = status[0].Field9;
}
else if (status[0].Field9 == "Pending")
{
statusRich.BackColor = Color.LightCyan;
statusRich.Text = status[0].Field9;
}
else if (status[0].Field9 == "Denied")
{
statusRich.BackColor = Color.Gray;
statusRich.Text = status[0].Field9;
}
}*/
}
}
}
}
用户控件2:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace InformationBookFinal.User_Control
{
public partial class UserControl2 : UserControl
{
public UserControl2()
{
InitializeComponent();
}
public void listSet(string test)
{
List<Information> status = new List<Information>();
dataAccess db = new dataAccess();
status = db.GetStatus(test);
ListBoxPeople.DataSource = status;
ListBoxPeople.DisplayMember = "FullInfo";
}
}
}
列表信息:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace InformationBookFinal
{
public class Information
{
public int id { get; set; }
public string Field1 { get; set; }
public string Field2 { get; set; }
public string Field3 { get; set; }
public string Field4 { get; set; }
public string Field5 { get; set; }
public string Field6 { get; set; }
public string Field7 { get; set; }
public string Field8 { get; set; }
public string Field9 { get; set; }
public string Field16 { get; set; }
public string Field17 { get; set; }
public string errormessage { get; set; }
public string FullInfo
{
get
{
// "John Doe (jdoe@test.com)
return $"{Field16} {Field1} {Field2} ({Field4}) {Field9}";
}
}
}
【问题讨论】:
-
@TheGeneral 数据返回结果,但这些结果不会发布在列表框中。列表框保持空白。我不认为我对此很清楚,我深表歉意。是的,field16 是一个数字。
-
Information的结构是什么 -
不知道是这里的代码还是你的真实代码中的拼写错误,但是你需要在accountVerification和ORDER之间留一个空格{accountVerification}ORDER
-
@TheGeneral,我已经用信息更新了代码
-
@Steve 不知道为什么,但我没有得到任何错误,因为它没有被隔开,并且无论有没有空格都返回相同的结果。