我正在寻找帮助为Visual Studio中的继承控件设置新的默认属性值:
class NewCombo : System.Windows.Forms.ComboBox
{
public NewCombo() { DropDownItems = 50; }
}
Run Code Online (Sandbox Code Playgroud)
问题是基类属性DropDownItems上设置了一个'default'属性,它是一个不同的值(不是50).因此,当我将控件拖到窗体上时,设计器文件会显示一条显式mycontrol.DropDownItems = 50;行.
起初,这没关系.但是如果稍后我将继承的类更改DropDownItems = 45;为构造函数,则不会影响任何表单上的任何控件,因为所有这些设计器文件仍然具有其中的硬编码值50.而重点是将价值设定在一个地方,这样我就可以与顾客改变主意.
显然,如果我在子类中创建自己的自定义属性,我可以给它自己设计的默认属性,无论我想要什么.但是在这里我想要更改基础中属性的默认值.有没有办法将Visual Studio属性应用于基类成员?或者是否有其他解决方法来获得我想要的结果?
我没有看到任何与GNU autoconf/automake构建有关的问题,但我希望至少有一些人熟悉它.开始:
我有一个项目(我称之为myproject),包括另一个项目(供应商).供应商项目是由其他人维护的独立项目.包含这样的项目是相当简单的,但在这种情况下有一个小问题:每个项目都生成自己的config.h文件,每个文件定义标准宏,如PACKAGE,VERSION等.这意味着,在构建期间,当供应商正在构建中,我收到很多这样的错误:
... warning: "VERSION" redefined
... warning: this is the location of the previous definition
... warning: "PACKAGE" redefined
... warning: this is the location of the previous definition
Run Code Online (Sandbox Code Playgroud)
这些只是警告,暂时至少,但我想摆脱它们.我已经能够通过Google搜索获得的唯一相关信息是automake邮件列表中的这个主题,这不是很多帮助.还有其他人有更好的想法吗?
我目前正在工作的公司正在使用Selenium来统一测试我们的用户界面.您使用什么来对Web UI进行单元测试以及如何有效地进行测试?
任何人都可以指向一个好的资源(或给我一个线索),告诉我如何在WPF中对DataBinding进行控制(ComboBox,ListBox等)?当我把所有的WinForms好处都从我身上带走时,我有点不知所措,而我开始时并不是那么光明......
我正在为我工作的公司开发一个内部销售应用程序,我有一个允许用户更改交付地址的表单.
现在我认为它会看起来更好,如果我用于主要地址细节的textarea只占用其中文本的区域,并在文本被更改时自动调整大小.
这是目前的截图.

有任何想法吗?
@克里斯
一个好点,但有理由我希望它调整大小.我希望它占用的区域是其中包含的信息区域.正如你在屏幕截图中看到的那样,如果我有一个固定的textarea,它会占用相当大的垂直空间.
我可以减少字体,但我需要地址大而且可读.现在我可以减小文本区域的大小,但是我遇到的问题是地址行需要3或4行(一行需要5行).需要用户使用滚动条是一个主要的禁忌.
我想我应该更具体一点.我正在垂直调整大小,宽度无关紧要.发生这种情况的唯一问题是,当窗口宽度太小时,ISO编号(大"1")会被推到地址下(正如您在屏幕截图中看到的那样).
这不是要有一个gimick; 它是关于有一个用户可以编辑的文本字段,它不会占用不必要的空间,但会显示其中的所有文本.
虽然如果有人想出另一种解决问题的方法,我也会对此持开放态度.
我已经修改了一些代码,因为它的行为有点奇怪.我将其更改为在keyup上激活,因为它不会考虑刚刚输入的字符.
resizeIt = function() {
var str = $('iso_address').value;
var cols = $('iso_address').cols;
var linecount = 0;
$A(str.split("\n")).each(function(l) {
linecount += 1 + Math.floor(l.length / cols); // Take into account long lines
})
$('iso_address').rows = linecount;
};
Run Code Online (Sandbox Code Playgroud) 我已经为Nintendo DS制作了许多不同的GUI系统部分,比如按钮,文本框和选择框,但是我需要一种在一个Gui类中包含这些类的方法,这样我就可以在屏幕上绘制所有内容了.一次,并立即检查所有按钮以检查是否有任何按钮被按下.我的问题是,将所有类(如按钮和文本框)组织到一个GUI类中的最佳方法是什么?
这是我想到的一种方式,但似乎不对:
编辑:我正在使用C++.
class Gui {
public:
void update_all();
void draw_all() const;
int add_button(Button *button); // Returns button id
void remove_button(int button_id);
private:
Button *buttons[10];
int num_buttons;
}
Run Code Online (Sandbox Code Playgroud)
这段代码有一些问题,但我只是想让你知道我想要什么.
过去,我使用Microsoft Web Application Stress Tool和Pylot来强调测试Web应用程序.我写了一个简单的主页,登录脚本和网站演练(在电子商务网站中添加一些项目到购物车和结帐).
只需与少数几个开发人员一起努力点击主页几乎总能找到一个主要问题.更多可扩展性问题将在第二阶段出现,甚至更多 - 在发布之后.
我使用的工具的URL是Microsoft Homer(又名Microsoft Web Application Stress Tool)和Pylot.
这些工具生成的报告对我来说从来没有多大意义,我会花费很多时间来弄清楚网站能够支持哪种并发负载.它总是值得的,因为最愚蠢的错误和瓶颈总是会出现(例如,Web服务器配置错误).
您做了什么,使用了哪些工具,以及您的方法取得了哪些成功?对我来说最有趣的部分是提出某种有意义的公式,用于根据压力测试应用程序报告的数量计算应用程序可以支持的并发用户数.
performance web-applications stress-testing webapplicationstresstool pylot
我对linq几乎一无所知.
我这样做:
var apps = from app in Process.GetProcesses()
where app.ProcessName.Contains( "MyAppName" ) && app.MainWindowHandle != IntPtr.Zero
select app;
Run Code Online (Sandbox Code Playgroud)
这让我获得了符合该标准的所有正在运行的进程.
但我不知道如何获得第一个.我可以在网上找到的例子似乎暗示我必须这样做
var matchedApp = (from app in Process.GetProcesses()
where app.ProcessName.Contains( "MyAppName" ) && app.MainWindowHandle != IntPtr.Zero
select app).First();
Run Code Online (Sandbox Code Playgroud)
这对我来说有点难看,如果没有匹配的进程也会抛出异常.有没有更好的办法?
UPDATE
我实际上是想找到第一个匹配的项目,然后打电话SetForegroundWindow给它
我想出了这个解决方案,这也让我感到丑陋和可怕,但比上面更好.有任何想法吗?
var unused = from app in Process.GetProcesses()
where app.ProcessName.Contains( "MyAppName" ) && app.MainWindowHandle != IntPtr.Zero
select SetForegroundWindow( app.MainWindowHandle ); // side-effects in linq-query is technically bad I guess
Run Code Online (Sandbox Code Playgroud) 有没有一种简单的方法可以在SQL Server中删除一组相互关联的表?理想情况下,我想避免担心他们被拒绝的顺序,因为我知道整个团队将在整个过程结束时消失.
所以,我需要一些帮助.我正在用C++开发一个项目.但是,我想我已经设法破坏了我的堆.这是基于我std::string向一个类添加了一个并从另一个类中赋值的事实std::string:
std::string hello = "Hello, world.\n";
/* exampleString = "Hello, world.\n" would work fine. */
exampleString = hello;
Run Code Online (Sandbox Code Playgroud)
使用堆栈转储在我的系统上崩溃.所以基本上我需要停下来查看我的所有代码和内存管理内容,找出我搞砸了的地方.代码库仍然很小(约1000行),因此这很容易实现.
不过,我对这种东西感到头疼,所以我想我会把它扔出去.我在一个Linux系统上并且已经四处乱窜valgrind,虽然我不知道我在做什么,但它确实报告说它std::string的析构函数是无效的.我不得不承认从谷歌搜索中获得"堆腐败"一词; 关于这类东西的任何通用文章也将受到赞赏.
(之前rm -rf ProjectDir,在C#再做一次:D)
编辑:我还没有说清楚,但我要求的是诊断这些记忆问题的建议.我知道std :: string的内容是正确的,所以这是我做过的事情(或者是一个bug,但是选择不是问题).我确信我可以查看我编写的代码,你很聪明的人会立即看到问题,但我想将这种代码分析添加到我的'工具箱'中,就像它一样.
c# ×2
c++ ×2
.net ×1
autoconf ×1
automake ×1
c ×1
css ×1
data-binding ×1
database ×1
heap ×1
html ×1
javascript ×1
linq ×1
linux ×1
memory ×1
performance ×1
prototypejs ×1
pylot ×1
selenium ×1
sql ×1
sql-server ×1
stack ×1
textarea ×1
unit-testing ×1
unix ×1
vb.net ×1
wpf ×1