小编Fre*_*red的帖子

未在ListView中显示的ListView项目和列消失

我在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,我会看到它们,在详细信息视图中它们会消失!如果我打破代码并查看项目,他们在所有正确的位置使用正确的数据看起来很好!

c# listview winforms

4
推荐指数
1
解决办法
3589
查看次数

基于可选搜索参数使用实体框架选择数据

我有一个使用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)

c# wcf entity-framework visual-studio-2012

4
推荐指数
1
解决办法
3712
查看次数

将图标添加到TreeViewItem

我被要求更新一个在类对象中动态构建的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)

c# treeview wpf-controls

3
推荐指数
1
解决办法
9541
查看次数

计算两个鼠标点之间的距离

我需要计算鼠标在屏幕上单击的两个地方之间的距离.

鼠标移动事件(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)

c# math mouse distance

3
推荐指数
1
解决办法
2087
查看次数

NGR正则表达式匹配

我正在尝试验证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个数字.

我没有太多与正则表达式有关,所以我一直在尝试各种组合,但我显然缺少一些东西.

c# regex

2
推荐指数
1
解决办法
160
查看次数

创建List <t>的副本,而不参考原始文件

我知道这已经被覆盖了,但从我在帖子中理解的这应该有效.

示例代码:

我有一个自定义类型:

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)

它从两个列表中删除

除非我完全遗漏了这篇文章,否则我应该能够更改副本列表,而不会影响原始文件.

c# reference

2
推荐指数
1
解决办法
2万
查看次数

反序列化XML - 对于无符号字节,值太大或太小

我正在使用他们的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,因为它是实时交易信息,但如果我错过了任何所需信息,请告诉我

c# xml opayo

1
推荐指数
1
解决办法
3598
查看次数

项目之间的类持久化

我知道我不应该问这个问题,但不管是什么,我都错过了让我疯了!我以前做了很多次,我只能把它放到老年和轻微的衰老.

我有一个类,有两个对象,在构造函数中初始化...

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)

c# class

0
推荐指数
1
解决办法
48
查看次数

如何计算天数?

我想计算两个日期之间的总天数(包括开始日期和结束日期).

代码:

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)

请帮我.谢谢.

c# asp.net

-1
推荐指数
1
解决办法
72
查看次数