问题列表 - 第1111页

Windows窗体:如何更改已禁用标签的字体颜色

我正在尝试为Label Control设置禁用的字体特征.我可以设置所有字体特征(大小,粗体等),但颜色被默认的窗口行为覆盖,这似乎是这两种颜色之一:

  • 如果背景颜色是透明的,则ForeColor与禁用TextBox的颜色相同.
  • 如果将背景颜色设置为其他任何颜色,则ForeColor为深灰色.

下图显示了行为 - 第1列是标签,第2列是文本框,第3列是组合框.

替代文字

编辑 - 解释图像:前两行是标签,文本框和组合框的默认样式.在后两行中,我将背景颜色设置为红色,将前景颜色设置为白色.Microsoft处理的禁用字体样式不一致.

winforms

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

在C#中操作RichText的更好方法是什么?

我需要创建一些RichText并将其复制到剪贴板,标准的"格式化"如粗体/斜体,缩进等.我现在这样做的方式看起来有点不雅......我正在创建一个RichTextBox项并通过它来应用我的格式:

RichTextBox rtb = new RichTextBox();
Font boldfont = new Font("Times New Roman", 10, FontStyle.Bold);
rtb.Text = "sometext";
rtb.SelectAll()
rtb.SelectionFont = boldfont;
rtb.SelectionIndent = 12;
Run Code Online (Sandbox Code Playgroud)

必须有一个更好的方法,但经过几个小时的搜索,我无法想出更好的东西.有任何想法吗?

编辑:RichTextBox(rtb)不会在表单上的任何位置显示/绘制.我只是使用该对象来格式化我的RichText.

c# string rtf

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

使用Python获取文件的最后n行,类似于tail

我正在为Web应用程序编写一个日志文件查看器,为此我想通过日志文件的行分页.文件中的项目是基于行的,底部是最新项目.

所以我需要一种tail()方法,可以n从底部读取行并支持偏移量.我想出的是这样的:

def tail(f, n, offset=0):
    """Reads a n lines from f with an offset of offset lines."""
    avg_line_length = 74
    to_read = n + offset
    while 1:
        try:
            f.seek(-(avg_line_length * to_read), 2)
        except IOError:
            # woops.  apparently file is smaller than what we want
            # to step back, go to the beginning instead
            f.seek(0)
        pos = f.tell()
        lines = f.read().splitlines()
        if len(lines) >= to_read or pos == 0:
            return lines[-to_read:offset and -offset or None]
        avg_line_length …
Run Code Online (Sandbox Code Playgroud)

python file-io file tail logfiles

174
推荐指数
10
解决办法
14万
查看次数

如何在运行时加载的程序集中使用通用log4net引用?

我有一个单线程应用程序,它使用以下命令在运行时加载多个程序集:

objDLL = Assembly.LoadFrom(strDLLs[i]);
Run Code Online (Sandbox Code Playgroud)

我希望以这种方式加载的程序集使用与其余程序集相同的log4net.ILog引用.但似乎运行时加载的程序集完全具有不同的引用,并且需要自己的配置.有没有人知道是否可以在运行时使用.NET接口加载的程序集中使用单个log4net.ILog?

以下是Program类中的log4net.ILog创建和支持代码:

   // Configure log4net using the .config file
   [assembly: log4net.Config.XmlConfigurator(Watch = true)]

   public static class Program
   {
      private static log4net.ILog m_Log = null;

      [STAThread]
      public static void Main(string[] args)
      {
         try
         {
            m_Log = log4net.LogManager.GetLogger(
               MethodBase.GetCurrentMethod().DeclaringType);
         }

      }
   }
Run Code Online (Sandbox Code Playgroud)

c# reflection logging log4net dynamic-binding

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

Windows上速度最快的小型数据存储

我的应用程序跟踪大约1000个对象的状态.这些对象以无特定顺序从持久存储(序列化)读取和写入.

现在,应用程序使用注册表来存储每个对象的状态.这很好,因为:

  • 很简单

  • 它非常快

  • 可以读取/写入单个对象的状态,而无需读取更大的实体(例如从大型XML文件中提取片段)

  • 有一个像样的编辑器(RegEdit),可以轻松操作单个项目

话虽如此,我想知道是否有更好的方法.SQLite似乎是一种可能性,但是您没有使用注册表获得的同一级别的多读者/多作者,并且没有简单的方法来编辑现有条目.

有更好的建议吗?一堆平面文件?

c++ windows registry caching data-structures

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

git diff - 处理长线?

我在一个文件上运行git-diff,但更改是在一个长行的末尾.

如果我使用光标键向右移动它会丢失颜色编码,更糟糕的是线条不会排列,这使得跟踪更改变得更加困难.

有没有办法防止这个问题,或简单地换行换行?

(通过mingw32运行git 1.5.5)

git diff word-wrap

229
推荐指数
11
解决办法
4万
查看次数

在应用程序中集中错误消息的最佳方法是什么?

在任何使用错误消息(或其他用户消息)的应用程序中,我通常都会对字符串进行硬编码.显然这可能非常糟糕(特别是当你可能不得不回来并本地化应用程序时).集中这些字符串的最佳方法是什么?一个静态类?常量?一个XML文件?或者组合(比如创建一个带有常量的静态类,用于从xml文件中读取).

.net error-handling coding-style

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

如何使"使用未初始化的值"警告消失?

比方说,我想写一个正则表达式来改变这一切<abc>,<def><ghi>标签为<xyz>标签..我也想改变自己的结束标记</xyz>.这似乎是一个合理的正则表达式(忽略反引号;如果我不包含它们,则StackOverflow会出现小于号的问题):

`s!<(/)?(abc|def|ghi)>!<${1}xyz>!g;`
Run Code Online (Sandbox Code Playgroud)

它也有效.唯一的问题是,对于打开标签,可选的$ 1变量被赋予undef,因此我得到一个"使用未初始化的值..."警告.

解决这个问题的优雅方法是什么?我宁愿不把它变成两个单独的正则表达式,一个用于打开标签,另一个用于关闭标签,因为那时需要维护两个标签列表副本,而不是一个.

编辑:我知道我可以在代码的这个区域关闭警告,但我不认为"优雅".

regex perl

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

尝试在C#中的ActiveX WebBrowser中设置/获取JavaScript变量

我们有一个包含ActiveX WebBrowser控件的Windows应用程序.作为此应用程序的常规操作的一部分,将对ActiveX WebBrowser控件显示的页面进行修改.部分修改涉及在加载到ActiveX WebBrowser中的网页中设置JavaScript变量.

我们需要在C#中初始化这个变量(最初,VB6代码正在初始化值).此变量的值是COM可见的类对象.

但是,为简单起见,我们将问题缩小为设置字符串值.我们的原始页面涉及框架等,但在这样的页面中出现相同的问题:

<HTML>
 <HEAD>
  <TITLE>Test</TITLE>
  <SCRIPT type="text/javascript">
   var field = 'hello world';
  </SCRIPT>
 </HEAD>
 <BODY>
   <input type="button" value="See field" onclick="javascript:alert(field);"/>
 </BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)

我们想要访问字段变量并为其赋值.在VB6中,代码非常简单:

doc.Script.field = 'newValue'
Run Code Online (Sandbox Code Playgroud)

但是,在C#中我们不得不求助于其他技巧,如下所示:

Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateSet(Script, null, "field",new object[] { "newValue"},null, null);
Run Code Online (Sandbox Code Playgroud)

页面的要点是测试我们的变量是否由C#正确分配.单击该按钮应该产生C#注入的任何新值.因此,例如,单击页面中的按钮,我们会收到一条警告:"newValue".

这是第一次工作,但如果我们重新加载页面它不起作用.在后续调用中,我们无法设置变量的值field.

以前有没有人有过做这种操作的经验?

javascript c# browser activex

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

Perl的地图有什么意义?

没有真正得到地图功能的重点.任何人都可以用例子解释它的用途吗

使用它而不是循环是否有任何性能优势,还是只是糖?

perl list map

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