我创建了一个字典,其中包含两个值DateTime和一个字符串.现在我想打印从字典到文本框的所有内容.有人知道怎么做这个吗.我已经使用此代码将字典打印到控制台:
private void button1_Click(object sender, EventArgs e)
{
Dictionary<DateTime, string> dictionary = new Dictionary<DateTime, string>();
dictionary.Add(monthCalendar1.SelectionStart, textBox1.Text);
foreach (KeyValuePair<DateTime, string> kvp in dictionary)
{
//textBox3.Text += ("Key = {0}, Value = {1}", kvp.Key, kvp.Value);
Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value);
}
}
Run Code Online (Sandbox Code Playgroud) 我在尝试获取我设置的ValueMember值时遇到了一些麻烦.我正在尝试使用组合框来选择Windows窗体报告.我可以得到名字而不是RptValue.这是我的代码:
private class Data
{
public string Name { get; set; }
public string RptValue { get; set; }
}
private void BaseForm_Load(object sender, EventArgs e)
{
this.rvDoctorReportViewer.RefreshReport();
comboBox1.Items.Add(new Data { Name="Select", RptValue="Select"});
comboBox1.Items.Add(new Data { Name = "All Food Values", RptValue = "AllFoodValues.rdlc" });
comboBox1.Items.Add(new Data { Name = "All Readings", RptValue = "AllReadings.rdlc" });
comboBox1.Items.Add(new Data { Name = "Avg Food Values by Date", RptValue = "AvgFoodValuesByDate.rdlc" });
comboBox1.Items.Add(new Data { Name = "Avg Food Values by Meal", …Run Code Online (Sandbox Code Playgroud) 我有一个程序,它使用dataGridView显示通过向dataGridView添加行每秒自动更新的数据.
当我想在开头读一些东西时,我向上滚动,即使数据更新,滚动条也没有下降,这很好.但我希望滚动条仅在它位于dataGridView的底部时才会向下.
将新行添加到文本时我想要的行为:
如果滚动条位于底部,则自动向下滚动.如果滚动条在别处,请不要滚动.
我为此编写的代码不幸的是不起作用:
private void liveDataTable_Scroll(object sender, ScrollEventArgs e)
{
ScrollPosition = liveDataTable.FirstDisplayedScrollingRowIndex;
if (ScrollPosition == liveDataTable.RowCount - 1)
{
IsScrolledToBottom = true;
}
else
{
IsScrolledToBottom = false;
}
}
public void AddRowToDataGridMethod()
{
dataTable.Rows.Add();
if (dataWin.IsScrolledToBottom == true)
dataWin.LiveDataTable.FirstDisplayedScrollingRowIndex = (dataWin.ScrollPosition + 1);
else
dataWin.LiveDataTable.FirstDisplayedScrollingRowIndex = dataWin.ScrollPosition;
}
Run Code Online (Sandbox Code Playgroud) 我使用以下代码来过滤包含字符串pre的列表.我错过了什么?这是代码
string pre = "a";
List<string> A = new List<string>();
List<string> B = new List<string>();
DAL dal = new DAL();
A = dal.GetNames();
B = (from x in A
where A.Contains(pre)
select x).ToList();
B = A.Where(c => A.Contains(pre)).ToList();
Run Code Online (Sandbox Code Playgroud)
B总是在这里空(在两种情况下).
尝试编译此代码,但if语句咳出一个错误:
错误1运算符'=='不能应用于'对象'类型的操作数和..
public enum ShoeType
{
soccer = 0,
jogging=1,
fitness=2
}
class Program
{
static void Main(string[] args)
{
string shoetype = "1";
if (Enum.Parse(typeof(ShoeType), shoetype) == ShoeType.jogging)
{
var test = "gotcha";
}
}
}
Run Code Online (Sandbox Code Playgroud) 我尝试在基本的编辑器类型的应用程序中实现GoTo ling,但并不总是准确的.通常情况下,它会获得正确的线条,但似乎线条越多,线条位置错误的可能性越大,走错线.不知道为什么这不起作用.有人可以帮忙吗?
int position = 0;
int lineCount = ((TextBox)tabControl1.SelectedTab.Controls[0]).Lines.Count();
for (int i = 0; i < LineNumber; i++)
{
position += ((TextBox)tabControl1.SelectedTab.Controls[0]).Lines[i].Count();
}
((TextBox)tabControl1.SelectedTab.Controls[0]).Focus();
((TextBox)tabControl1.SelectedTab.Controls[0]).SelectionStart = position;
((TextBox)tabControl1.SelectedTab.Controls[0]).ScrollToCaret();
LineNumber = 0;
position = 0;
lineCount = 0;
Run Code Online (Sandbox Code Playgroud) 我正在做一些优化,发现这个:
for (int x = -1; x < 2; x++)
{
for (int y = -1; y < 2 ; y++)
{
if (((x * x) ^ (y * y)) != 1)
{
continue;
}
}
}
Run Code Online (Sandbox Code Playgroud)
运行时需要两倍以上:
for (int x = -1; x < 2; x++)
{
for (int y = -1; y < 2 && ((x * x) ^ (y * y)) == 1; y++)
{
}
}
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?
目的是避免对角线(-1,-1; -1,1 ......)和原点(0,0)场
我编写的代码比我在网上发现的一些代码更慢(超出最大时间),即使在线代码看起来更臃肿.
那么我陷入了什么陷阱,我的代码看起来更干净,但却以某种方式放慢了速度?
慢(我的):
using System;
public class Program
{
public static void Main()
{
int countMAX = 0;
int num = 0;
for (int i = 2; i <= 1000000; i++)
{
int count = 1;
int temp = i;
while (temp != 1)
{
if(temp % 2 == 0) temp /= 2;
else temp = temp * 3 + 1;
count++;
}
if(count > countMAX)
{
countMAX = count;
num = i;
}
}
Console.WriteLine("Number: " + num + …Run Code Online (Sandbox Code Playgroud) 我将用户名和密码存储在MySql数据库中.我使用以下代码根据数据库中的数据验证凭据以进行登录.代码工作正常.我的问题是这是不好的做法,是否有更好的方法来做到这一点.
我的方法是连接到该数据库,在List中提取和存储这些信息,并将它们与来自文本框输入的用户输入进行比较.
//Extracting information from the database and storing it in a List
public void Login()
{
MySqlCommand cmdReader;
MySqlDataReader myReader;
userQuery = "SELECT * FROM User";
string name = "Name";
string user = "UserName";
string pw = "Password";
string connString = "server=" + server + "; userid=" + userid + "; password=" + password + "; database=" + database;
try
{
conn.ConnectionString = connString;
conn.Open();
cmdReader = new MySqlCommand(userQuery, conn);
myReader = cmdReader.ExecuteReader();
while (myReader.Read())
{
string tempUser, tempPassword; …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个测试程序来检查用户对数据库的响应(基本上是3个数组).这是相关代码:
while(true) {
int r = randomnumbergenerator.nextInt(length);
String[] split2 = a[r].split(" ");
String lastNameAnswer = "";
while(!lastNameAnswer.equals(split2[1])) {
System.out.println("What is " + split2[0] + "\'s last name?");
lastNameAnswer = reader.next();
}
String hometownAnswer = "";
String hometown = h[r];
while(!hometownAnswer.equals(hometown)) {
System.out.println("What is " + split2[0] + "\'s hometown?");
hometownAnswer = reader.next();
}
String majorAnswer = "";
String major = m[r];
while(!majorAnswer.equals(major)) {
System.out.println("What is " + split2[0] + "\'s major?");
majorAnswer = reader.next();
}
}
Run Code Online (Sandbox Code Playgroud)
那么应该发生的是它应该从数据库中选择一个名称,并询问有关名称的问题,例如姓氏,家乡和专业.如果用户的答案错误,则应重复询问该问题.我的代码适用于姓氏和专业,但由于某种原因,故乡是故障.这是输出:
What is Ellen's …Run Code Online (Sandbox Code Playgroud) c# ×9
winforms ×2
.net ×1
datagridview ×1
dictionary ×1
enums ×1
java ×1
linq ×1
mysql ×1
optimization ×1
report ×1
scrollbar ×1
wpf ×1