我需要实现的是,显示带有组合框(包含所有时区)的 UI,以及组合框下方的复选框。仅当时区(选定的组合框项)支持夏令时时才应显示该复选框。还可以在呈现 UI 控件时根据上次配置选中/取消选中复选框。
现在 C# 中的 TimeZoneInfo 类允许我获取时区列表(组合框的数据)。但是 TimeZoneInfo 类中的 SupportsDayLightSaving 属性在 Checkbox 被选中时显示为 true,当没有复选框或 Checkbox 未选中时为 false 。
那么我如何通过 C# 确定,
1.时区是否支持DayLightSavingTime(例如:印度标准时间不支持夏令时) 2.是否启用夏令时(勾选/取消勾选)时区是否支持夏令时。
编辑:如果我之前没有正确解释,这里是更详细的信息。我想做的事 :
PS:根据 MSDN SupportsDaylightSavingTime 属性,如果复选框被选中,该值将为 true,如果复选框未选中或时区不支持 DST,则值为 false。有了这个属性,如果值为 false,那么我无法确定是隐藏复选框还是显示它并取消选中复选框。例如:对于印度标准时间,我不应该显示复选框,为此,如果我必须依赖属性值,那么我会将其设为 false 并且我可以隐藏它。但考虑到我们有柏林时区(+1 UTC),使用控制面板设置取消选中复选框,然后我将属性值检索为 false 并应用上述逻辑将隐藏复选框,但在这里我想显示未选中状态的复选框。
编辑答案:看起来我无法正确解释问题,对此我深表歉意。经过长时间的谷歌搜索和搜索,我可以看到 .NET 没有提供 API 来支持我的需求。因此提出了一个解决方案,
检查 SupportsDaylightSavingsTime 属性是否为 true ,如果然后显示选中状态的复选框。如果上述属性值为 false ,则检查注册表中的 DynamicDaylightTimeDisabled 值 (HKLM\System\CurrentControlSet\Control\TimeZoneInformation)。因为这里的 false 并不意味着时区不支持 DST,而是也可以禁用它。如果值为 1,则显示未选中状态的复选框(因为它支持 DST 但目前已禁用)。如果值为 0 ,则不显示复选框。(因为时区不支持 DST)。
//get the time zone info for the currently selected time …Run Code Online (Sandbox Code Playgroud) 我们如何获得C#/ WinForms中当前正在执行的代码的行号.
在PHP中,我们可以访问__LINE__或__FUNCTION__访问有关当前正在执行的代码段的详细信息.
我有一个字符串数组(concatarray)包含的项目,如
15.234 Mon 10,20.12345 Tue 11,11.3521 Wed 12,1901.23 Thu 13
我希望将它从最大数量到最小数量排序,就像这样
1901.23 Thu 13,20.12345 Tue 11,15.234 Mon 10,11.3521 Wed 12
我试过了
Array.Sort <string>(concatarray);
Array.Reverse(concatarray);
但那就到了
20.12345 Tue 11,1901.23 Thu 13,15.234 Mon 10,11.3521 Wed 12
我的代码确实有效但现在它告诉我在返回行中有一个明确的转换.
public IEnumerable<Contacts> GetAllContacts()
{
var Contacts = from c in dbc.Contacts select c;
return (IEnumerable<Contact>)Contacts;
}
Run Code Online (Sandbox Code Playgroud) 当我将电子邮件留空并提交注册表单时,它会将表单输入正确保存到数据库中.但是,当我包含一封电子邮件(例如:testemail@gmail.com)时,它会在db.SaveChanges(); 叫做.
我收到的错误说:
EntityFramework.dll中出现"System.Data.Entity.Validation.DbEntityValidationException"类型的异常,但未在用户代码中处理
附加信息:一个或多个实体的验证失败.有关详细信息,请参阅"EntityValidationErrors"属性.
控制器:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
using Mkq.Models;
namespace Mkq.Controllers
{
public class TeacherController : Controller
{
private MkqDbEntities db = new MkqDbEntities();
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Register([Bind(Include="teacher_id,subscription_id,teacher_fname,teacher_lname,username,password,email,teacher_credNumber,teacher_credST")] Teacher teacher)
{
teacher.subscription_id = 1;
teacher.teacher_credNumber = null;
teacher.teacher_credST = null;
if (ModelState.IsValid)
{
db.Teachers.Add(teacher);
db.SaveChanges(); //Error occurs when submitted
return View();
}
// If we got this far, something failed, redisplay form
return …Run Code Online (Sandbox Code Playgroud) 任何正文都可以帮我解释一下,在C#继承的情况下,首先调用Child类构造函数而不是父类构造函数是否真的可行?
我写了一些类列表,这是我用来初始化类的代码
public class Album
{
static public int IDNumber { get; set; }
static public string AlbumName { get; set; }
static public string Artist { get; set; }
static public int ReleaseDate { get; set; }
static public int TrackAmount { get; set; }
static public string Location { get; set; }
static public int Rating { get; set; }
public Album(int _id, string _name, string _artist, int _releasedate, int _trackamount, string _location, int _rating)
{
IDNumber = _id; …Run Code Online (Sandbox Code Playgroud) 我刚刚在Windows 8.1上安装了MS Visual Studio 2013 Express的全新副本.安装后我检查了新的IDE.当我创建一个新的C#项目时,我需要像往常一样选择项目模板.但我唯一的选择是:商店应用>通用应用,空白商店应用等.
问题是我想创建一个winform项目,但我找不到合适的模板.我是否需要手动下载并安装Winform项目模板?
编辑:
我想创建这种项目.http://msdn.microsoft.com/en-us/library/dd492132.aspx
什么是最好的方法System.Collections.Generic.List,只有一个enum?为了帮助描述我正在寻找的东西,我现在就这样做:
enum MyEnum
{
First,
Second,
Count
}
class MyClass
{
List<SomeClass> myList = new List<SomeClass>((int)MyEnum.Count);
MyClass()
{
myList[(int)MyEnum.First] = new SomeClass(1);
myList[(int)MyEnum.Second] = new SomeClass(2);
}
}
Run Code Online (Sandbox Code Playgroud)
我觉得我错过了什么.有没有更好的方法呢?如果答案很明显,我很抱歉,我发现很难找到听起来如此通用的东西.
作为一些背景,我将使用此列表来访问我的代码中的不同纹理,例如,enum将具有纹理名称,并且每个纹理将被放置在以后List使用该纹理名称访问.
我有一个带有10个文本框的小表单,我将它们设置在右边的Tab顺序中,目前我希望它们以Tab To的方式.我想知道是否有办法设置文本框,因此除非它们被选中,否则无法选择它们进行编辑.ie ...我不希望最终用户能够点击文本框来编辑它们,我只希望它们可以通过Tabbing进行编辑.
c# ×10
.net ×3
asp.net ×2
winforms ×2
arrays ×1
asp.net-mvc ×1
constructor ×1
enums ×1
inheritance ×1
list ×1
oop ×1
sorting ×1
textbox ×1
timezone ×1
wpf ×1