Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

CSharp Spaltenbreite im Datagrid anpassen

Frage Entwicklung VB for Applications

Mitglied: Beowolf

Beowolf (Level 1) - Jetzt verbinden

07.10.2008, aktualisiert 10.10.2008, 13190 Aufrufe, 6 Kommentare

Hallo Zusammen,

ich habe mit Visual C# Express eine kleines Programm geschrieben, dass mir Daten aus einer Access Datenbank ausliest und in einem DataGrid anzeigt. Diese Anzeige wird dann an den Drucker übergeben, der die Spalten so druckt (breite), wie sie im Datagrid angezeigt werden. Ich möchte jetzt im Quelltext die exakte Breite jeder einzeln Splate festlegen. Google brachte mich leider nicht weiter.

Hier ein Auschnitt aus dem Quelltext:

private void btn_Inventar_Click(object sender, EventArgs e)
{
sql = "SELECT * FROM Inventar ORDER BY Inventarnummer;";
FillDataGrid();
dataGrid.CaptionText = "Inventar";
}

private void FillDataGrid()
{
try
{
conn = new OleDbConnection(connectionString);
OleDbDataAdapter adapter = new OleDbDataAdapter(sql, conn);
ds = new DataSet();
adapter.Fill(ds);
dataGrid.DataSource = ds.Tables[0].DefaultView;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}

Ich hoffe Ihr habt eine Lösung.

Danke im Voraus

Gruß Steffen
Mitglied: Kosh
08.10.2008 um 09:48 Uhr
das schon versucht?

01.
DataGridView dgvtest = new DataGridView(); 
02.
dgvtest.Columns[0].Width = 50; 
03.
// oder 
04.
dgvtest.Columns["Spaltenname"].Width = 50;
Bitte warten ..
Mitglied: Beowolf
09.10.2008 um 08:34 Uhr
Hallo Kosh,

Vielen Dank für die schnelle Hilfe.
Deine Lösung funktioniert für ein DataGridView wunderbar.
Das Grundprogramm wurde jedoch vor meiner Zeit geschrieben und enthält ein DataGrid. Meines Wissens wurde das DataGridView erst mit der Version 2005 eingeführt. Im DataGrid wird eine Inventurliste mit fester breite angezeigt, welche exakt so Ausgedruckt werden kann.
Werden die Zeilen per "Hand" größer gezogen, werden sie jedoch in "Standardgröße" gedruckt.

Der Druckerklasse kann leider nur ein DataGrid und kein DataGridView übergeben werden. Deine Lösung funktioniert leider nur mit einem DataGridView.
Hast du noch ne Idee für das DataGrid?

Danke

Mfg Steffen
Bitte warten ..
Mitglied: Kosh
09.10.2008 um 15:10 Uhr
stimmt sorry. hab hier standardmässig VS2008.

Beim "alten" datagrid konnte man ein tablestyle definieren.

versuchs mal so:

01.
DataGrid dgtest = new DataGrid(); 
02.
DataGridTableStyle ts = new DataGridTableStyle(); 
03.
ts.MappingName = "Tabelle"; 
04.
dgtest.TableStyles.Clear(); 
05.
dgtest.TableStyles.Add(ts); 
06.
dgtest.TableStyles["Tabelle"].GridColumnStyles["Spalte"].Width = 50;
Bitte warten ..
Mitglied: Beowolf
10.10.2008 um 08:33 Uhr
Hallo Kosh,

nochmals vielen Dank.
Da es in meinem Projekt leider nicht funktioniert habe ich mal ein neues angelgt.

Hier der Quelltext:

private void button1_Click(object sender, EventArgs e)
{
DataGrid dataGrid = new DataGrid();
sql = "SELECT * FROM Raum;";
FillDataGrid();
}

private void FillDataGrid()
{
try
{
con = new OleDbConnection(connection);
OleDbDataAdapter da = new OleDbDataAdapter(sql, con);
ds = new DataSet();
da.Fill(ds);
dataGrid.DataSource = ds.Tables[0];

DataGridTableStyle ts = new DataGridTableStyle();
ts.MappingName = "Raum";
dataGrid.TableStyles.Clear();
dataGrid.TableStyles.Add(ts);
dataGrid.TableStyles["Raum"].GridColumnStyles["RaumID"].Width = 300;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

}

Meine DataGrid wird mit den korrekten Werten gefüllt. Jeodch wird keine Spalte in der Größe geändert und auch kein Fehler gemeldet.
Zur Info:
Die Tabelle nennt sich Raum und beinhaltet die Spalten Raum und RaumID.

Was mache ich falsch?

Mfg Steffen
Bitte warten ..
Mitglied: Kosh
10.10.2008 um 08:55 Uhr
da hab ich grad was gefunden, wo der code etwas ausführlicher angeführt wird.

http://www.thescarms.com/dotnet/ColumnStyles.aspx

einfach etwas runterscrollen zu "For the C# coder:"
Bitte warten ..
Mitglied: Beowolf
10.10.2008 um 09:24 Uhr
Damit funktionierts.

Vielen Dank und ein schönes Wochenende.

Gruß Steffen.
Bitte warten ..
Ähnliche Inhalte
Visual Studio
gelöst CSharp Bereiche von Listen von Zahlen ausgeben (1)

Frage von Aicher1998 zum Thema Visual Studio ...

Batch & Shell
Umgebungsvariable "PATH" für eine Anwendung anpassen (7)

Frage von enno zum Thema Batch & Shell ...

Batch & Shell
gelöst String automatisch anpassen (erweitern oder kürzen) (9)

Frage von CreatorX zum Thema Batch & Shell ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows Server
gelöst Exchange HyperV Prozessorlast (19)

Frage von theoberlin zum Thema Windows Server ...

Windows Server
Server mit Netzwerkaussetzern (18)

Frage von SarekHL zum Thema Windows Server ...

LAN, WAN, Wireless
gelöst Batchdatei um einen Proxy einzustellen (14)

Frage von CrystalFlake zum Thema LAN, WAN, Wireless ...

Server-Hardware
gelöst SPP von HP Abwärtskompatibel? (14)

Frage von fireskyer zum Thema Server-Hardware ...