我在WinForm的选项卡控件中有一个ListView.首次加载表单时,我可以按预期看到所有标题:

我用ListView的详细信息填充ListView:
string[] fileEntries = Directory.GetFiles(trNode.Tag.ToString(), "*.*", SearchOption.TopDirectoryOnly);
int fileNo = 1;
foreach (string fileName in fileEntries)
{
FileInfo oFileInfo = new FileInfo(fileName);
ListViewItem lvi = new ListViewItem(new string[] { fileNo.ToString(), oFileInfo.Name, oFileInfo.Extension, oFileInfo.Length.ToString(), oFileInfo.CreationTime.ToString() });
lvFiles.Items.Add(lvi);
fileNo++;
}
Run Code Online (Sandbox Code Playgroud)
表单加载后,列标题已消失,没有项目显示.

我没有代码来更改ListView或任何容器的可见性.正如你在加载后看到的那样,ListView有一个滚动条,我猜这个滚动条没有隐藏.
任何建议都是最受欢迎的!
UPDATE
listview Items.Count告诉我listview中有项目.更奇怪的是,如果我将视图更改为SmallIcons,我会看到它们,在详细信息视图中它们会消失!如果我打破代码并查看项目,他们在所有正确的位置使用正确的数据看起来很好!
我有一个使用EF与数据库连接的项目.它通过WCF Web服务完成此操作.这是我的第一个EF项目,我正在尝试研究如何基于可选参数构造查询.
我的Web服务与EF中的类具有匹配字段的数据协定.Web服务与数据库联系,填充这些客户端类并将它们传递回客户端.举个例子....
在Web服务中
[DataContract]
public class MyMovie
{
[DataMember]
public int MovieId;
[DataMember]
public string MovieName;
[DataMember]
public int MovieRatingId;
[DataMember]
public string MovieRunTime;
[DataMember]
public string MovieIMDBUrl;
[DataMember]
public DateTime MovieDateAdded;
[DataMember]
public List<MyMovieActor> Actors;
[DataMember]
public List<MyMovieMedia> MediaFiles;
}
public class MyMovieActor
{
[DataMember]
public int ActorId;
[DataMember]
public int ActorMovieId;
[DataMember]
public string ActorName;
[DataMember]
public string ActorCharacter;
}
public class MyMovieMedia
{
[DataMember]
public int MediaId;
[DataMember]
public int MediaMovieId;
[DataMember]
public string MediaFileLocation;
[DataMember] …Run Code Online (Sandbox Code Playgroud) 我被要求更新一个在类对象中动态构建的WPF应用程序中的TreeVeiw.正如您将看到treeveiw没有任何约束.以下不是我的代码!!
<TreeView Grid.Row="0" HorizontalAlignment="Stretch" Name="tvLocations" VerticalAlignment="Stretch" SelectedItemChanged="tvLocations_SelectedItemChanged" />
private void BuildTreeVeiw(Location locationList)
{
this.Title = _selectedLoc.Name + " - Locations";
tvLocations.Items.Clear();
TreeViewItem tvitem;
tvitem = new TreeViewItem() { Header = locationList.Name, Uid = locationList.Id.ToString() };
if (locationList.Printers != null)
{
TreeViewItem tvprnitem = new TreeViewItem() { Header = "Printers" };
tvprnitem.FontWeight = FontWeights.Regular;
foreach (Printer sprinters in locationList.Printers)
{
TreeViewItem psubitem = new TreeViewItem() { Header = sprinters.Name, Uid = sprinters.Id.ToString() };
TreeViewItem psubitem1 = new TreeViewItem() { Header = …Run Code Online (Sandbox Code Playgroud) 我需要计算鼠标在屏幕上单击的两个地方之间的距离.
鼠标移动事件(eX&eY)中填充了目标(x和Y)和源(X和Y)
我有 distance = Math.Sqrt(Math.Pow(targetX - sourceX, 2) + Math.Pow(targetY - sourceY, 2));
这给了我一个结果,但如果我说实话,我不确定测量单位是什么或如何转换它.如何将结果转换为有意义的结果,如cm或英寸?我猜我需要考虑屏幕资源吗?
更新 我只是真的消磨时间.不寻找一个有效的解决方案.它只会持续一两天.
这是MoveMove事件和电话.应该发布之前更清楚.
private void HookManager_MouseMove(object sender, MouseEventArgs e)
{
labelMousePosition.Text = string.Format("x={0:0000}; y={1:0000}", e.X, e.Y);
AddDistance(Convert.ToDouble(e.X), Convert.ToDouble(e.Y));
}
private void AddDistance(double targetX, double targetY)
{
if (sourceX != 0 && sourceY != 0)
{
double distance = Convert.ToDouble(lblDistanceTravelled.Text);
distance =+ Math.Sqrt(Math.Pow(targetX - sourceX, 2) + Math.Pow(targetY - sourceY, 2));
lblDistanceTravelled.Text = distance.ToString();
}
sourceX = targetX;
sourceY = targetY;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试验证NGR(国家网格参考).这必须是2个字母的格式,后跟4,6,8或10位数字.前两个字母必须是SS,ST,SW,SX或SY.到目前为止我所拥有的是:
^[S][STWXY]\d{4}$|\d{6}$|\d{8}$|\d{10}$
Run Code Online (Sandbox Code Playgroud)
问题是,这似乎是基于两个字母后跟4位数字或6位数字或8位数字或10位数字来验证
我想要两个字母和4个数字或2个字母和6个数字或2个字母和8个数字或2个字母和10个数字.
我没有太多与正则表达式有关,所以我一直在尝试各种组合,但我显然缺少一些东西.
我知道这已经被覆盖了,但从我在帖子中理解的这应该有效.
示例代码:
我有一个自定义类型:
public class MyType
{
public List<MySubType> Movie { get; set; }
public List<int> Ranks { get; set; }
public string Location { get; set; }
public string Released { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后我创建一个这种类型的List
List<MyType> myMovies = new List<MyType>();
Run Code Online (Sandbox Code Playgroud)
稍后在代码中我需要创建此列表的副本并更改它而不影响原始列表.
List<MyType> copyMovies = new List<MyType>(myMovies);
Run Code Online (Sandbox Code Playgroud)
但现在如果我从copyMovies中的列表中删除
copyMovies.Movie.RemoveAt(x);
Run Code Online (Sandbox Code Playgroud)
它从两个列表中删除
除非我完全遗漏了这篇文章,否则我应该能够更改副本列表,而不会影响原始文件.
我正在使用他们的API从SagePay下载交易数据.调用的结果给了我一个XML字符串,然后我反序列化并存储在一个类中.
每次调用检索最多50条记录,我在给定datetime范围内进行多次调用,直到检索到所有记录.这适用于前X次调用,但后来出现错误:
System.Xml.dll中发生了未处理的"System.InvalidOperationException"类型异常
附加信息:XML文档中存在错误(1,141).
内部异常:{"对于无符号字节,值太大或太小."}
XML document (1, 141).每次尝试时,值并不总是保持不变.如果我看看这个位置上的角色,我看不出有什么不对.
在这个例子中,字符141是"t" <totalrows>:
<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><vspaccess><errorcode>0000</errorcode><transactions><startrow>251</startrow><endrow>300</endrow><totalrows>16684</totalrows>
Run Code Online (Sandbox Code Playgroud)
在<startrow>251表明,5个成功的电话有这样一个真实出错之前消失.
反序列化代码:
XmlSerializer serializer = new XmlSerializer(typeof(vspaccess));
StringReader rdr = new StringReader(xmlDoc.InnerXml);
vspaccess sageTransactions = (vspaccess)serializer.Deserialize(rdr);
Run Code Online (Sandbox Code Playgroud)
vspaccess 是由VS2013生成的类(粘贴特殊)
我错过了什么?
我显然无法发布所有XML,因为它是实时交易信息,但如果我错过了任何所需信息,请告诉我
我知道我不应该问这个问题,但不管是什么,我都错过了让我疯了!我以前做了很多次,我只能把它放到老年和轻微的衰老.
我有一个类,有两个对象,在构造函数中初始化...
public class EbayFunctions
{
private static ApiContext apiContext = null;
private static List<StoreCategoriesFlattened> storeCategories = new List<StoreCategoriesFlattened>();
public EbayFunctions()
{
ApiContext apiContext = GetApiContext();
List<StoreCategoriesFlattened> storeCategories = GetFlattenedStoreCategories();
}
public string GetStoreCategoryIdForItem(string category)
{
var result = storeCategories.Find(x => x.CCDatabaseMatch == category);
return ""; //Ignore will return a value
}
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个表单应用程序(测试工具),使用该类和按钮单击我调用方法...
namespace EbayTestHarness
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void cmdGetEbayStoreCatID_Click(object sender, EventArgs e)
{
EbayFunctions ebf = new …Run Code Online (Sandbox Code Playgroud) 我想计算两个日期之间的总天数(包括开始日期和结束日期).
代码:
DateTime start = Convert.ToDateTime(txtStart.Text);
DateTime end = Convert.ToDateTime(txtEnd.Text);
TimeSpan datedifference = end.Subtract(start);
int dateCount = datedifference.Days;
Run Code Online (Sandbox Code Playgroud)
从上面的代码我得到两个日期之间的差异.
示例:
电流输出:
start= 10/25/2015
end= 10/25/2015
dateCount=0
OR
start=10/25/2015
end=10/26/2015
dateCount=1
Run Code Online (Sandbox Code Playgroud)
要求输出:
start= 10/25/2015
end= 10/25/2015
dateCount=1
OR
start=10/25/2015
end=10/26/2015
dateCount=2
Run Code Online (Sandbox Code Playgroud)
请帮我.谢谢.