我想在C#中使用PrintDocument打印文件.该文件是简单的HTML(我需要它,因为我需要文件中的文本位于页面中的特定位置.)
我的问题是,如何打印文件以便它不会打印HTML本身(标签等),而是打印在Web浏览器中显示的HTML?
我在MySQL涉及三个表一个多一对多表关系tickets,ticket_solutions和solutions.(票证可能有多个解决方案,解决方案适用于多张票证.)
这是表结构,简化:
tickets ticket_solutions solutions
----- ----- -----
id ticket_id id
solution_id solution
Run Code Online (Sandbox Code Playgroud)
(在这个例子中,所有的字段都INT,除了solutions.solution它是VARCHAR.)由于一些门票都没有完成,他们可能没有任何解决方案.
我写了以下查询:
SELECT t.id, GROUP_CONCAT(DISTINCT sol.solution SEPARATOR ', ') solutions
FROM tickets t
LEFT JOIN ticket_solutions tsol ON (tsol.ticket_id = t.id)
LEFT JOIN solutions sol ON (tsol.solution_id = sol.id)
GROUP BY t.id DESC;
Run Code Online (Sandbox Code Playgroud)
我的问题在于第二个问题LEFT JOIN.在ticket_solutions给定票证的链接器表()中存在条目的任何情况下,总会有匹配的记录solutions.但是,如果我尝试使用INNER JOIN,我不再获得缺乏解决方案的门票.
根据我的想法,NULL值发生的唯一时间是tickets链接器表和链接器表之间的关系.(没有任何解决方案的门票.)
我必须LEFT JOIN在链接器表之间使用, …
我将信息显示为ThreeState启用的复选框,并希望以最简单的方式使用可空的布尔值.
目前我正在使用嵌套的三元表达式; 但有更明确的方式吗?
bool? foo = null;
checkBox1.CheckState = foo.HasValue ?
(foo == true ? CheckState.Checked : CheckState.Unchecked) :
CheckState.Indeterminate;
Run Code Online (Sandbox Code Playgroud)
*请注意,复选框和表单是只读的.
我有一个C#/.NET应用程序,目前使用StringBuilder生成HTML电子邮件.
已经开发了一种新的消息格式,现在包含更多格式和CSS.我想避免使用StringBuilder附加文件的每一行,所以我认为最好将HTML文件包含为资源.
但是,CSS和HTML中有大约21个变量,我需要动态更改.我的第一个想法是用标准的String.Format占位符({0},{1}等)替换它们,但在查看HTML时,验证会抱怨这些.
对于存储200行HTML文件并在包含在电子邮件中之前更改部分内容的最佳做法,我感到非常难过.
例:
在CSS中,我需要更改某些元素的颜色,如下所示:
#header
{
background-color: {0};
}
Run Code Online (Sandbox Code Playgroud)
在HTML中,我需要更改字符串和URL,如下所示:
<img src="{1}" />
<span>{2}</span>
Run Code Online (Sandbox Code Playgroud)
似乎包含HTML作为项目中的资源是最好的,但是尝试将String.Format与该资源一起使用,无论它是否有效,都是一种糟糕的方法,因为上述验证错误.
有什么建议?
我有一个简单的问题,我无法自己解决.
我有一个ObjectListView填充了我的一些对象.但除此之外,我想要另一列,默认文本为"删除".单击该列时,应删除选定的行.我怎么做?
从Apache错误日志:
[2012年12月3日14:58:01] [错误] [客户端xxxx] PHP致命错误:允许内存大小为16777216字节耗尽(尝试分配884830字节)在第0行的未知中,参考:https:// www.使用domain.tld /引荐
为什么说"0号线未知"?为什么不"在xx行上的Filename.php"?
我正在重构一个预先存在的解决方案。我使用 ReSharper,我注意到代码检查规则被触发。有一个抽象类,它具有无体方法签名,目的是强制派生类(其中有几个)。就我所知,这是(或至少是)正确的做事方式。但是,ReSharper 抱怨“类型成员永远不会通过基类型访问”并且“仅使用[方法] 的覆盖”。以下是复制相关问题的示例代码:
public abstract class MyAbstractClass
{
public abstract void CreateSomething();
public abstract void ReadSomething();
public abstract void InsertSomething();
}
public class MyDerivedClass : MyAbstractClass
{
public override void CreateSomething()
{
throw new NotImplementedException();
}
public override void ReadSomething()
{
throw new NotImplementedException();
}
public override void InsertSomething()
{
throw new NotImplementedException();
}
}
Run Code Online (Sandbox Code Playgroud)
顺便说一下,还有其他成员排除了将抽象类作为接口的可能性。ReSharper 建议对抽象类中的 3 个方法进行更改。它的建议是将它们设置为受保护的、虚拟的、非抽象的,或者只是将它们从抽象类中删除而只在派生类中使用它们。最初编写此代码的人旨在为每个派生类实现这些方法,并且这些方法在派生类中是公共的。那么,有什么方法可以改变它以使其更有效吗?如果没有,为什么 ReSharper 对此提出异议?
我有一个enum,它描述了可供用户选择作为设置的一部分的选项.这被序列化为XML.其中一个名称并不理想,我想重命名它,但仍然支持旧设置文件的反序列化.
例如:
public enum Options
{
Odd,
NonOdd // rename to 'Even'
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以重命名它,但指定以前的序列化名称,如下所示:
public enum Options
{
Odd,
[XmlEnum(Name = "NonOdd")]
Even
}
Run Code Online (Sandbox Code Playgroud)
虽然这有效,但它继续NonOdd在XML文件中使用,我不想这样做.
有没有办法支持当前和已弃用的枚举名称的反序列化,但序列化为当前名称?
在.NET C#3.5 Winforms中,我有一个带有一些简单子控件(如文本框,标签和按钮)的用户控件。当前,当我将.Enabled用户控件的属性设置为false时,控件将相应地变暗。但是,如果我.BackColor对用户控件使用自定义设置,则有时调光效果不如我希望的那么明显。
当.Enabled设置为false 时,是否可以指定或更改用户控件的变暗颜色?或在相关说明中,发生这种情况时我是否可以调用方法?
我是.NET的新手.是否可以使用.NET环境创建tar.gz?如果有,怎么样?